v2 – github.com/go-playground/assert/v2 Index | Files

package assert

import "github.com/go-playground/assert/v2"

Package assert provides some basic assertion functions for testing and also provides the building blocks for creating your own more complex validations.

package whatever

import (
	"errors"
	"testing"
	. "github.com/go-playground/assert.v1"
)

func AssertCustomErrorHandler(t testing.TB, errs map[string]string, key, expected string) {
	val, ok := errs[key]

	// using EqualSkip and NotEqualSkip as building blocks for my custom Assert function
	EqualSkip(t, 2, ok, true)
	NotEqualSkip(t, 2, val, nil)
	EqualSkip(t, 2, val, expected)
}

func TestEqual(t *testing.T) {

	// error comes from your package/library
	err := errors.New("my error")
	NotEqual(t, err, nil)
	Equal(t, err.Error(), "my error")

	err = nil
	Equal(t, err, nil)

	fn := func() {
		panic("omg omg omg!")
	}

	PanicMatches(t, func() { fn() }, "omg omg omg!")
	PanicMatches(t, func() { panic("omg omg omg!") }, "omg omg omg!")

	// errs would have come from your package/library
	errs := map[string]string{}
	errs["Name"] = "User Name Invalid"
	errs["Email"] = "User Email Invalid"

	AssertCustomErrorHandler(t, errs, "Name", "User Name Invalid")
	AssertCustomErrorHandler(t, errs, "Email", "User Email Invalid")
}

Index

Functions

func Equal

func Equal(t testing.TB, val1, val2 interface{})

Equal validates that val1 is equal to val2 and throws an error with line number

func EqualSkip

func EqualSkip(t testing.TB, skip int, val1, val2 interface{})

EqualSkip validates that val1 is equal to val2 and throws an error with line number but the skip variable tells EqualSkip how far back on the stack to report the error. This is a building block to creating your own more complex validation functions.

func IsEqual

func IsEqual(val1, val2 interface{}) bool

IsEqual returns whether val1 is equal to val2 taking into account Pointers, Interfaces and their underlying types

func MatchRegex

func MatchRegex(t *testing.T, value string, regex interface{})

MatchRegex validates that value matches the regex, either string or *regex and throws an error with line number

func MatchRegexSkip

func MatchRegexSkip(t *testing.T, skip int, value string, regex interface{})

MatchRegexSkip validates that value matches the regex, either string or *regex and throws an error with line number but the skip variable tells MatchRegexSkip how far back on the stack to report the error. This is a building block to creating your own more complex validation functions.

func NotEqual

func NotEqual(t testing.TB, val1, val2 interface{})

NotEqual validates that val1 is not equal val2 and throws an error with line number

func NotEqualSkip

func NotEqualSkip(t testing.TB, skip int, val1, val2 interface{})

NotEqualSkip validates that val1 is not equal to val2 and throws an error with line number but the skip variable tells NotEqualSkip how far back on the stack to report the error. This is a building block to creating your own more complex validation functions.

func NotMatchRegex

func NotMatchRegex(t *testing.T, value string, regex interface{})

NotMatchRegex validates that value matches the regex, either string or *regex and throws an error with line number

func NotMatchRegexSkip

func NotMatchRegexSkip(t *testing.T, skip int, value string, regex interface{})

NotMatchRegexSkip validates that value matches the regex, either string or *regex and throws an error with line number but the skip variable tells NotMatchRegexSkip how far back on the stack to report the error. This is a building block to creating your own more complex validation functions.

func PanicMatches

func PanicMatches(t testing.TB, fn func(), matches string)

PanicMatches validates that the panic output of running fn matches the supplied string

func PanicMatchesSkip

func PanicMatchesSkip(t testing.TB, skip int, fn func(), matches string)

PanicMatchesSkip validates that the panic output of running fn matches the supplied string but the skip variable tells PanicMatchesSkip how far back on the stack to report the error. This is a building block to creating your own more complex validation functions.

Source Files

assert.go doc.go

Version
v2.2.0 (latest)
Published
Sep 6, 2022
Platform
darwin/amd64
Imports
6 packages
Last checked
now

Tools for package owners.