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 ¶
- func Equal(t testing.TB, val1, val2 interface{})
- func EqualSkip(t testing.TB, skip int, val1, val2 interface{})
- func IsEqual(val1, val2 interface{}) bool
- func MatchRegex(t *testing.T, value string, regex interface{})
- func MatchRegexSkip(t *testing.T, skip int, value string, regex interface{})
- func NotEqual(t testing.TB, val1, val2 interface{})
- func NotEqualSkip(t testing.TB, skip int, val1, val2 interface{})
- func NotMatchRegex(t *testing.T, value string, regex interface{})
- func NotMatchRegexSkip(t *testing.T, skip int, value string, regex interface{})
- func PanicMatches(t testing.TB, fn func(), matches string)
- func PanicMatchesSkip(t testing.TB, skip int, fn func(), matches string)
Functions ¶
func Equal ¶
Equal validates that val1 is equal to val2 and throws an error with line number
func EqualSkip ¶
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 ¶
MatchRegex validates that value matches the regex, either string or *regex and throws an error with line number
func MatchRegexSkip ¶
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 ¶
NotEqual validates that val1 is not equal val2 and throws an error with line number
func NotEqualSkip ¶
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 ¶
NotMatchRegex validates that value matches the regex, either string or *regex and throws an error with line number
func NotMatchRegexSkip ¶
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 ¶
PanicMatches validates that the panic output of running fn matches the supplied string
func PanicMatchesSkip ¶
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 ¶
- Version
- v2.2.0 (latest)
- Published
- Sep 6, 2022
- Platform
- darwin/amd64
- Imports
- 6 packages
- Last checked
- now –
Tools for package owners.