API ReferenceAnonymux DocsPinned to upstream commit 87a7b9d

require

import "github.com/stretchr/testify/require"

Package require implements the same assertions as the assert package but stops test execution when a test fails.

Example Usage

The following is a complete example using require in a standard test function:

import (
  "testing"
  "github.com/stretchr/testify/require"
)

func TestSomething(t *testing.T) {

  var a string = "Hello"
  var b string = "Hello"

  require.Equal(t, a, b, "The two words should be the same.")

}

Assertions

The require package have same global functions as in the assert package, but instead of returning a boolean result they call testing.T.FailNow. A consequence of this is that it must be called from the goroutine running the test function, not from other goroutines created during the test.

Every assertion function also takes an optional string message as the final argument, allowing custom error messages to be appended to the message the assertion method outputs.

Functions

func Condition(t TestingT, comp assert.Comparison, msgAndArgs ...interface{})

Source: require/require.go:13

Condition uses a Comparison to assert a complex condition.

func Conditionf(t TestingT, comp assert.Comparison, msg string, args ...interface{})

Source: require/require.go:24

Conditionf uses a Comparison to assert a complex condition.

func Contains(t TestingT, s interface{}, contains interface{}, msgAndArgs ...interface{})

Source: require/require.go:40

Contains asserts that the specified string, list(array, slice...) or map contains the specified substring or element.

require.Contains(t, "Hello World", "World")
require.Contains(t, ["Hello", "World"], "World")
require.Contains(t, {"Hello": "World"}, "Hello")

func Containsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{})

Source: require/require.go:56

Containsf asserts that the specified string, list(array, slice...) or map contains the specified substring or element.

require.Containsf(t, "Hello World", "World", "error message %s", "formatted")
require.Containsf(t, ["Hello", "World"], "World", "error message %s", "formatted")
require.Containsf(t, {"Hello": "World"}, "Hello", "error message %s", "formatted")

func DirExists(t TestingT, path string, msgAndArgs ...interface{})

Source: require/require.go:68

DirExists checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists.

func DirExistsf(t TestingT, path string, msg string, args ...interface{})

Source: require/require.go:80

DirExistsf checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists.

func ElementsMatch(t TestingT, listA interface{}, listB interface{}, msgAndArgs ...interface{})

Source: require/require.go:95

ElementsMatch asserts that the specified listA(array, slice...) is equal to specified listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, the number of appearances of each of them in both lists should match.

require.ElementsMatch(t, [1, 3, 2, 3], [1, 3, 3, 2])

func ElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string, args ...interface{})

Source: require/require.go:110

ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, the number of appearances of each of them in both lists should match.

require.ElementsMatchf(t, [1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted")

func Empty(t TestingT, object interface{}, msgAndArgs ...interface{})

Source: require/require.go:133

Empty asserts that the given value is "empty".

Zero values are "empty".

Arrays are "empty" if every element is the zero value of the type (stricter than "empty").

Slices, maps and channels with zero length are "empty".

Pointer values are "empty" if the pointer is nil or if the pointed value is "empty".

require.Empty(t, obj)

func Emptyf(t TestingT, object interface{}, msg string, args ...interface{})

Source: require/require.go:156

Emptyf asserts that the given value is "empty".

Zero values are "empty".

Arrays are "empty" if every element is the zero value of the type (stricter than "empty").

Slices, maps and channels with zero length are "empty".

Pointer values are "empty" if the pointer is nil or if the pointed value is "empty".

require.Emptyf(t, obj, "error message %s", "formatted")

func Equal(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require.go:173

Equal asserts that two objects are equal.

require.Equal(t, 123, 123)

Pointer variable equality is determined based on the equality of the referenced values (as opposed to the memory addresses). Function equality cannot be determined and will always fail.

func EqualError(t TestingT, theError error, errString string, msgAndArgs ...interface{})

Source: require/require.go:188

EqualError asserts that a function returned a non-nil error (i.e. an error) and that it is equal to the provided error.

actualObj, err := SomeFunction()
require.EqualError(t, err,  expectedErrorString)

func EqualErrorf(t TestingT, theError error, errString string, msg string, args ...interface{})

Source: require/require.go:203

EqualErrorf asserts that a function returned a non-nil error (i.e. an error) and that it is equal to the provided error.

actualObj, err := SomeFunction()
require.EqualErrorf(t, err,  expectedErrorString, "error message %s", "formatted")

func EqualExportedValues(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require.go:223

EqualExportedValues asserts that the types of two objects are equal and their public fields are also equal. This is useful for comparing structs that have private fields that could potentially differ.

 type S struct {
	Exported     	int
	notExported   	int
 }
 require.EqualExportedValues(t, S{1, 2}, S{1, 3}) => true
 require.EqualExportedValues(t, S{1, 2}, S{2, 3}) => false

func EqualExportedValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require.go:243

EqualExportedValuesf asserts that the types of two objects are equal and their public fields are also equal. This is useful for comparing structs that have private fields that could potentially differ.

 type S struct {
	Exported     	int
	notExported   	int
 }
 require.EqualExportedValuesf(t, S{1, 2}, S{1, 3}, "error message %s", "formatted") => true
 require.EqualExportedValuesf(t, S{1, 2}, S{2, 3}, "error message %s", "formatted") => false

func EqualValues(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require.go:257

EqualValues asserts that two objects are equal or convertible to the larger type and equal.

require.EqualValues(t, uint32(123), int32(123))

func EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require.go:271

EqualValuesf asserts that two objects are equal or convertible to the larger type and equal.

require.EqualValuesf(t, uint32(123), int32(123), "error message %s", "formatted")

func Equalf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require.go:288

Equalf asserts that two objects are equal.

require.Equalf(t, 123, 123, "error message %s", "formatted")

Pointer variable equality is determined based on the equality of the referenced values (as opposed to the memory addresses). Function equality cannot be determined and will always fail.

func Error(t TestingT, err error, msgAndArgs ...interface{})

Source: require/require.go:302

Error asserts that a function returned a non-nil error (ie. an error).

actualObj, err := SomeFunction()
require.Error(t, err)

func ErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{})

Source: require/require.go:314

ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. This is a wrapper for errors.As.

func ErrorAsf(t TestingT, err error, target interface{}, msg string, args ...interface{})

Source: require/require.go:326

ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. This is a wrapper for errors.As.

func ErrorContains(t TestingT, theError error, contains string, msgAndArgs ...interface{})

Source: require/require.go:341

ErrorContains asserts that a function returned a non-nil error (i.e. an error) and that the error contains the specified substring.

actualObj, err := SomeFunction()
require.ErrorContains(t, err,  expectedErrorSubString)

func ErrorContainsf(t TestingT, theError error, contains string, msg string, args ...interface{})

Source: require/require.go:356

ErrorContainsf asserts that a function returned a non-nil error (i.e. an error) and that the error contains the specified substring.

actualObj, err := SomeFunction()
require.ErrorContainsf(t, err,  expectedErrorSubString, "error message %s", "formatted")

func ErrorIs(t TestingT, err error, target error, msgAndArgs ...interface{})

Source: require/require.go:368

ErrorIs asserts that at least one of the errors in err's chain matches target. This is a wrapper for errors.Is.

func ErrorIsf(t TestingT, err error, target error, msg string, args ...interface{})

Source: require/require.go:380

ErrorIsf asserts that at least one of the errors in err's chain matches target. This is a wrapper for errors.Is.

func Errorf(t TestingT, err error, msg string, args ...interface{})

Source: require/require.go:394

Errorf asserts that a function returned a non-nil error (ie. an error).

actualObj, err := SomeFunction()
require.Errorf(t, err, "error message %s", "formatted")

func Eventually(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{})

Source: require/require.go:408

Eventually asserts that given condition will be met in waitFor time, periodically checking target function each tick.

require.Eventually(t, func() bool { return true; }, time.Second, 10*time.Millisecond)

func EventuallyWithT(t TestingT, condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{})

Source: require/require.go:436

EventuallyWithT asserts that given condition will be met in waitFor time, periodically checking target function each tick. In contrast to Eventually, it supplies a CollectT to the condition function, so that the condition function can use the CollectT to call other assertions. The condition is considered "met" if no errors are raised in a tick. The supplied CollectT collects all errors from one tick (if there are any). If the condition is not met before waitFor, the collected errors of the last tick are copied to t.

externalValue := false
go func() {
	time.Sleep(8*time.Second)
	externalValue = true
}()
require.EventuallyWithT(t, func(c *assert.CollectT) {
	// add assertions as needed; any assertion failure will fail the current tick
	require.True(c, externalValue, "expected 'externalValue' to be true")
}, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false")

func EventuallyWithTf(t TestingT, condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{})

Source: require/require.go:464

EventuallyWithTf asserts that given condition will be met in waitFor time, periodically checking target function each tick. In contrast to Eventually, it supplies a CollectT to the condition function, so that the condition function can use the CollectT to call other assertions. The condition is considered "met" if no errors are raised in a tick. The supplied CollectT collects all errors from one tick (if there are any). If the condition is not met before waitFor, the collected errors of the last tick are copied to t.

externalValue := false
go func() {
	time.Sleep(8*time.Second)
	externalValue = true
}()
require.EventuallyWithTf(t, func(c *assert.CollectT) {
	// add assertions as needed; any assertion failure will fail the current tick
	require.True(c, externalValue, "expected 'externalValue' to be true")
}, 10*time.Second, 1*time.Second, "error message %s", "formatted")

func Eventuallyf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{})

Source: require/require.go:478

Eventuallyf asserts that given condition will be met in waitFor time, periodically checking target function each tick.

require.Eventuallyf(t, func() bool { return true; }, time.Second, 10*time.Millisecond, "error message %s", "formatted")

func Exactly(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require.go:491

Exactly asserts that two objects are equal in value and type.

require.Exactly(t, int32(123), int64(123))

func Exactlyf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require.go:504

Exactlyf asserts that two objects are equal in value and type.

require.Exactlyf(t, int32(123), int64(123), "error message %s", "formatted")

func Fail(t TestingT, failureMessage string, msgAndArgs ...interface{})

Source: require/require.go:515

Fail reports a failure through

func FailNow(t TestingT, failureMessage string, msgAndArgs ...interface{})

Source: require/require.go:526

FailNow fails test

func FailNowf(t TestingT, failureMessage string, msg string, args ...interface{})

Source: require/require.go:537

FailNowf fails test

func Failf(t TestingT, failureMessage string, msg string, args ...interface{})

Source: require/require.go:548

Failf reports a failure through

func False(t TestingT, value bool, msgAndArgs ...interface{})

Source: require/require.go:561

False asserts that the specified value is false.

require.False(t, myBool)

func Falsef(t TestingT, value bool, msg string, args ...interface{})

Source: require/require.go:574

Falsef asserts that the specified value is false.

require.Falsef(t, myBool, "error message %s", "formatted")

func FileExists(t TestingT, path string, msgAndArgs ...interface{})

Source: require/require.go:586

FileExists checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file.

func FileExistsf(t TestingT, path string, msg string, args ...interface{})

Source: require/require.go:598

FileExistsf checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file.

func Greater(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{})

Source: require/require.go:613

Greater asserts that the first element is greater than the second

require.Greater(t, 2, 1)
require.Greater(t, float64(2), float64(1))
require.Greater(t, "b", "a")

func GreaterOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{})

Source: require/require.go:629

GreaterOrEqual asserts that the first element is greater than or equal to the second

require.GreaterOrEqual(t, 2, 1)
require.GreaterOrEqual(t, 2, 2)
require.GreaterOrEqual(t, "b", "a")
require.GreaterOrEqual(t, "b", "b")

func GreaterOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{})

Source: require/require.go:645

GreaterOrEqualf asserts that the first element is greater than or equal to the second

require.GreaterOrEqualf(t, 2, 1, "error message %s", "formatted")
require.GreaterOrEqualf(t, 2, 2, "error message %s", "formatted")
require.GreaterOrEqualf(t, "b", "a", "error message %s", "formatted")
require.GreaterOrEqualf(t, "b", "b", "error message %s", "formatted")

func Greaterf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{})

Source: require/require.go:660

Greaterf asserts that the first element is greater than the second

require.Greaterf(t, 2, 1, "error message %s", "formatted")
require.Greaterf(t, float64(2), float64(1), "error message %s", "formatted")
require.Greaterf(t, "b", "a", "error message %s", "formatted")

func HTTPBodyContains(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{})

Source: require/require.go:674

HTTPBodyContains asserts that a specified handler returns a body that contains a string.

require.HTTPBodyContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky")

func HTTPBodyContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{})

Source: require/require.go:688

HTTPBodyContainsf asserts that a specified handler returns a body that contains a string.

require.HTTPBodyContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted")

func HTTPBodyNotContains(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{})

Source: require/require.go:702

HTTPBodyNotContains asserts that a specified handler returns a body that does not contain a string.

require.HTTPBodyNotContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky")

func HTTPBodyNotContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{})

Source: require/require.go:716

HTTPBodyNotContainsf asserts that a specified handler returns a body that does not contain a string.

require.HTTPBodyNotContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted")

func HTTPError(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{})

Source: require/require.go:729

HTTPError asserts that a specified handler returns an error status code.

require.HTTPError(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}}

func HTTPErrorf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{})

Source: require/require.go:742

HTTPErrorf asserts that a specified handler returns an error status code.

require.HTTPErrorf(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}}

func HTTPRedirect(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{})

Source: require/require.go:755

HTTPRedirect asserts that a specified handler returns a redirect status code.

require.HTTPRedirect(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}}

func HTTPRedirectf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{})

Source: require/require.go:768

HTTPRedirectf asserts that a specified handler returns a redirect status code.

require.HTTPRedirectf(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}}

func HTTPStatusCode(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msgAndArgs ...interface{})

Source: require/require.go:781

HTTPStatusCode asserts that a specified handler returns a specified status code.

require.HTTPStatusCode(t, myHandler, "GET", "/notImplemented", nil, 501)

func HTTPStatusCodef(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{})

Source: require/require.go:794

HTTPStatusCodef asserts that a specified handler returns a specified status code.

require.HTTPStatusCodef(t, myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted")

func HTTPSuccess(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{})

Source: require/require.go:807

HTTPSuccess asserts that a specified handler returns a success status code.

require.HTTPSuccess(t, myHandler, "POST", "http://www.google.com", nil)

func HTTPSuccessf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{})

Source: require/require.go:820

HTTPSuccessf asserts that a specified handler returns a success status code.

require.HTTPSuccessf(t, myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted")

func Implements(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{})

Source: require/require.go:833

Implements asserts that an object is implemented by the specified interface.

require.Implements(t, (*MyInterface)(nil), new(MyObject))

func Implementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{})

Source: require/require.go:846

Implementsf asserts that an object is implemented by the specified interface.

require.Implementsf(t, (*MyInterface)(nil), new(MyObject), "error message %s", "formatted")

func InDelta(t TestingT, expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{})

Source: require/require.go:859

InDelta asserts that the two numerals are within delta of each other.

require.InDelta(t, math.Pi, 22/7.0, 0.01)

func InDeltaMapValues(t TestingT, expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{})

Source: require/require.go:870

InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.

func InDeltaMapValuesf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{})

Source: require/require.go:881

InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.

func InDeltaSlice(t TestingT, expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{})

Source: require/require.go:892

InDeltaSlice is the same as InDelta, except it compares two slices.

func InDeltaSlicef(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{})

Source: require/require.go:903

InDeltaSlicef is the same as InDelta, except it compares two slices.

func InDeltaf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{})

Source: require/require.go:916

InDeltaf asserts that the two numerals are within delta of each other.

require.InDeltaf(t, math.Pi, 22/7.0, 0.01, "error message %s", "formatted")

func InEpsilon(t TestingT, expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{})

Source: require/require.go:927

InEpsilon asserts that expected and actual have a relative error less than epsilon

func InEpsilonSlice(t TestingT, expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{})

Source: require/require.go:938

InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices.

func InEpsilonSlicef(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{})

Source: require/require.go:949

InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices.

func InEpsilonf(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{})

Source: require/require.go:960

InEpsilonf asserts that expected and actual have a relative error less than epsilon

func IsDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{})

Source: require/require.go:975

IsDecreasing asserts that the collection is decreasing

require.IsDecreasing(t, []int{2, 1, 0})
require.IsDecreasing(t, []float{2, 1})
require.IsDecreasing(t, []string{"b", "a"})

func IsDecreasingf(t TestingT, object interface{}, msg string, args ...interface{})

Source: require/require.go:990

IsDecreasingf asserts that the collection is decreasing

require.IsDecreasingf(t, []int{2, 1, 0}, "error message %s", "formatted")
require.IsDecreasingf(t, []float{2, 1}, "error message %s", "formatted")
require.IsDecreasingf(t, []string{"b", "a"}, "error message %s", "formatted")

func IsIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{})

Source: require/require.go:1005

IsIncreasing asserts that the collection is increasing

require.IsIncreasing(t, []int{1, 2, 3})
require.IsIncreasing(t, []float{1, 2})
require.IsIncreasing(t, []string{"a", "b"})

func IsIncreasingf(t TestingT, object interface{}, msg string, args ...interface{})

Source: require/require.go:1020

IsIncreasingf asserts that the collection is increasing

require.IsIncreasingf(t, []int{1, 2, 3}, "error message %s", "formatted")
require.IsIncreasingf(t, []float{1, 2}, "error message %s", "formatted")
require.IsIncreasingf(t, []string{"a", "b"}, "error message %s", "formatted")

func IsNonDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{})

Source: require/require.go:1035

IsNonDecreasing asserts that the collection is not decreasing

require.IsNonDecreasing(t, []int{1, 1, 2})
require.IsNonDecreasing(t, []float{1, 2})
require.IsNonDecreasing(t, []string{"a", "b"})

func IsNonDecreasingf(t TestingT, object interface{}, msg string, args ...interface{})

Source: require/require.go:1050

IsNonDecreasingf asserts that the collection is not decreasing

require.IsNonDecreasingf(t, []int{1, 1, 2}, "error message %s", "formatted")
require.IsNonDecreasingf(t, []float{1, 2}, "error message %s", "formatted")
require.IsNonDecreasingf(t, []string{"a", "b"}, "error message %s", "formatted")

func IsNonIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{})

Source: require/require.go:1065

IsNonIncreasing asserts that the collection is not increasing

require.IsNonIncreasing(t, []int{2, 1, 1})
require.IsNonIncreasing(t, []float{2, 1})
require.IsNonIncreasing(t, []string{"b", "a"})

func IsNonIncreasingf(t TestingT, object interface{}, msg string, args ...interface{})

Source: require/require.go:1080

IsNonIncreasingf asserts that the collection is not increasing

require.IsNonIncreasingf(t, []int{2, 1, 1}, "error message %s", "formatted")
require.IsNonIncreasingf(t, []float{2, 1}, "error message %s", "formatted")
require.IsNonIncreasingf(t, []string{"b", "a"}, "error message %s", "formatted")

func IsNotType(t TestingT, theType interface{}, object interface{}, msgAndArgs ...interface{})

Source: require/require.go:1093

IsNotType asserts that the specified objects are not of the same type.

require.IsNotType(t, &NotMyStruct{}, &MyStruct{})

func IsNotTypef(t TestingT, theType interface{}, object interface{}, msg string, args ...interface{})

Source: require/require.go:1106

IsNotTypef asserts that the specified objects are not of the same type.

require.IsNotTypef(t, &NotMyStruct{}, &MyStruct{}, "error message %s", "formatted")

func IsType(t TestingT, expectedType interface{}, object interface{}, msgAndArgs ...interface{})

Source: require/require.go:1119

IsType asserts that the specified objects are of the same type.

require.IsType(t, &MyStruct{}, &MyStruct{})

func IsTypef(t TestingT, expectedType interface{}, object interface{}, msg string, args ...interface{})

Source: require/require.go:1132

IsTypef asserts that the specified objects are of the same type.

require.IsTypef(t, &MyStruct{}, &MyStruct{}, "error message %s", "formatted")

func JSONEq(t TestingT, expected string, actual string, msgAndArgs ...interface{})

Source: require/require.go:1145

JSONEq asserts that two JSON strings are equivalent.

require.JSONEq(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`)

func JSONEqf(t TestingT, expected string, actual string, msg string, args ...interface{})

Source: require/require.go:1158

JSONEqf asserts that two JSON strings are equivalent.

require.JSONEqf(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted")

func Len(t TestingT, object interface{}, length int, msgAndArgs ...interface{})

Source: require/require.go:1172

Len asserts that the specified object has specific length. Len also fails if the object has a type that len() not accept.

require.Len(t, mySlice, 3)

func Lenf(t TestingT, object interface{}, length int, msg string, args ...interface{})

Source: require/require.go:1186

Lenf asserts that the specified object has specific length. Lenf also fails if the object has a type that len() not accept.

require.Lenf(t, mySlice, 3, "error message %s", "formatted")

func Less(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{})

Source: require/require.go:1201

Less asserts that the first element is less than the second

require.Less(t, 1, 2)
require.Less(t, float64(1), float64(2))
require.Less(t, "a", "b")

func LessOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{})

Source: require/require.go:1217

LessOrEqual asserts that the first element is less than or equal to the second

require.LessOrEqual(t, 1, 2)
require.LessOrEqual(t, 2, 2)
require.LessOrEqual(t, "a", "b")
require.LessOrEqual(t, "b", "b")

func LessOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{})

Source: require/require.go:1233

LessOrEqualf asserts that the first element is less than or equal to the second

require.LessOrEqualf(t, 1, 2, "error message %s", "formatted")
require.LessOrEqualf(t, 2, 2, "error message %s", "formatted")
require.LessOrEqualf(t, "a", "b", "error message %s", "formatted")
require.LessOrEqualf(t, "b", "b", "error message %s", "formatted")

func Lessf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{})

Source: require/require.go:1248

Lessf asserts that the first element is less than the second

require.Lessf(t, 1, 2, "error message %s", "formatted")
require.Lessf(t, float64(1), float64(2), "error message %s", "formatted")
require.Lessf(t, "a", "b", "error message %s", "formatted")

func Negative(t TestingT, e interface{}, msgAndArgs ...interface{})

Source: require/require.go:1262

Negative asserts that the specified element is negative

require.Negative(t, -1)
require.Negative(t, -1.23)

func Negativef(t TestingT, e interface{}, msg string, args ...interface{})

Source: require/require.go:1276

Negativef asserts that the specified element is negative

require.Negativef(t, -1, "error message %s", "formatted")
require.Negativef(t, -1.23, "error message %s", "formatted")

func Never(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{})

Source: require/require.go:1290

Never asserts that the given condition doesn't satisfy in waitFor time, periodically checking the target function each tick.

require.Never(t, func() bool { return false; }, time.Second, 10*time.Millisecond)

func Neverf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{})

Source: require/require.go:1304

Neverf asserts that the given condition doesn't satisfy in waitFor time, periodically checking the target function each tick.

require.Neverf(t, func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted")

func New(t TestingT) *Assertions

Source: require/forward_requirements.go:10

New makes a new Assertions object for the specified TestingT.

func Nil(t TestingT, object interface{}, msgAndArgs ...interface{})

Source: require/require.go:1317

Nil asserts that the specified object is nil.

require.Nil(t, err)

func Nilf(t TestingT, object interface{}, msg string, args ...interface{})

Source: require/require.go:1330

Nilf asserts that the specified object is nil.

require.Nilf(t, err, "error message %s", "formatted")

func NoDirExists(t TestingT, path string, msgAndArgs ...interface{})

Source: require/require.go:1342

NoDirExists checks whether a directory does not exist in the given path. It fails if the path points to an existing _directory_ only.

func NoDirExistsf(t TestingT, path string, msg string, args ...interface{})

Source: require/require.go:1354

NoDirExistsf checks whether a directory does not exist in the given path. It fails if the path points to an existing _directory_ only.

func NoError(t TestingT, err error, msgAndArgs ...interface{})

Source: require/require.go:1369

NoError asserts that a function returned a nil error (ie. no error).

actualObj, err := SomeFunction()
require.NoError(t, err)
require.Equal(t, expectedObj, actualObj)

func NoErrorf(t TestingT, err error, msg string, args ...interface{})

Source: require/require.go:1384

NoErrorf asserts that a function returned a nil error (ie. no error).

actualObj, err := SomeFunction()
require.NoErrorf(t, err, "error message %s", "formatted")
require.Equal(t, expectedObj, actualObj)

func NoFileExists(t TestingT, path string, msgAndArgs ...interface{})

Source: require/require.go:1396

NoFileExists checks whether a file does not exist in a given path. It fails if the path points to an existing _file_ only.

func NoFileExistsf(t TestingT, path string, msg string, args ...interface{})

Source: require/require.go:1408

NoFileExistsf checks whether a file does not exist in a given path. It fails if the path points to an existing _file_ only.

func NotContains(t TestingT, s interface{}, contains interface{}, msgAndArgs ...interface{})

Source: require/require.go:1424

NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the specified substring or element.

require.NotContains(t, "Hello World", "Earth")
require.NotContains(t, ["Hello", "World"], "Earth")
require.NotContains(t, {"Hello": "World"}, "Earth")

func NotContainsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{})

Source: require/require.go:1440

NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the specified substring or element.

require.NotContainsf(t, "Hello World", "Earth", "error message %s", "formatted")
require.NotContainsf(t, ["Hello", "World"], "Earth", "error message %s", "formatted")
require.NotContainsf(t, {"Hello": "World"}, "Earth", "error message %s", "formatted")

func NotElementsMatch(t TestingT, listA interface{}, listB interface{}, msgAndArgs ...interface{})

Source: require/require.go:1460

NotElementsMatch asserts that the specified listA(array, slice...) is NOT equal to specified listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, the number of appearances of each of them in both lists should not match. This is an inverse of ElementsMatch.

require.NotElementsMatch(t, [1, 1, 2, 3], [1, 1, 2, 3]) -> false

require.NotElementsMatch(t, [1, 1, 2, 3], [1, 2, 3]) -> true

require.NotElementsMatch(t, [1, 2, 3], [1, 2, 4]) -> true

func NotElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string, args ...interface{})

Source: require/require.go:1480

NotElementsMatchf asserts that the specified listA(array, slice...) is NOT equal to specified listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, the number of appearances of each of them in both lists should not match. This is an inverse of ElementsMatch.

require.NotElementsMatchf(t, [1, 1, 2, 3], [1, 1, 2, 3], "error message %s", "formatted") -> false

require.NotElementsMatchf(t, [1, 1, 2, 3], [1, 2, 3], "error message %s", "formatted") -> true

require.NotElementsMatchf(t, [1, 2, 3], [1, 2, 4], "error message %s", "formatted") -> true

func NotEmpty(t TestingT, object interface{}, msgAndArgs ...interface{})

Source: require/require.go:1494

NotEmpty asserts that the specified object is NOT Empty.

require.NotEmpty(t, obj)
require.Equal(t, "two", obj[1])

func NotEmptyf(t TestingT, object interface{}, msg string, args ...interface{})

Source: require/require.go:1508

NotEmptyf asserts that the specified object is NOT Empty.

require.NotEmptyf(t, obj, "error message %s", "formatted")
require.Equal(t, "two", obj[1])

func NotEqual(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require.go:1524

NotEqual asserts that the specified values are NOT equal.

require.NotEqual(t, obj1, obj2)

Pointer variable equality is determined based on the equality of the referenced values (as opposed to the memory addresses).

func NotEqualValues(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require.go:1537

NotEqualValues asserts that two objects are not equal even when converted to the same type

require.NotEqualValues(t, obj1, obj2)

func NotEqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require.go:1550

NotEqualValuesf asserts that two objects are not equal even when converted to the same type

require.NotEqualValuesf(t, obj1, obj2, "error message %s", "formatted")

func NotEqualf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require.go:1566

NotEqualf asserts that the specified values are NOT equal.

require.NotEqualf(t, obj1, obj2, "error message %s", "formatted")

Pointer variable equality is determined based on the equality of the referenced values (as opposed to the memory addresses).

func NotErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{})

Source: require/require.go:1578

NotErrorAs asserts that none of the errors in err's chain matches target, but if so, sets target to that error value.

func NotErrorAsf(t TestingT, err error, target interface{}, msg string, args ...interface{})

Source: require/require.go:1590

NotErrorAsf asserts that none of the errors in err's chain matches target, but if so, sets target to that error value.

func NotErrorIs(t TestingT, err error, target error, msgAndArgs ...interface{})

Source: require/require.go:1602

NotErrorIs asserts that none of the errors in err's chain matches target. This is a wrapper for errors.Is.

func NotErrorIsf(t TestingT, err error, target error, msg string, args ...interface{})

Source: require/require.go:1614

NotErrorIsf asserts that none of the errors in err's chain matches target. This is a wrapper for errors.Is.

func NotImplements(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{})

Source: require/require.go:1627

NotImplements asserts that an object does not implement the specified interface.

require.NotImplements(t, (*MyInterface)(nil), new(MyObject))

func NotImplementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{})

Source: require/require.go:1640

NotImplementsf asserts that an object does not implement the specified interface.

require.NotImplementsf(t, (*MyInterface)(nil), new(MyObject), "error message %s", "formatted")

func NotNil(t TestingT, object interface{}, msgAndArgs ...interface{})

Source: require/require.go:1653

NotNil asserts that the specified object is not nil.

require.NotNil(t, err)

func NotNilf(t TestingT, object interface{}, msg string, args ...interface{})

Source: require/require.go:1666

NotNilf asserts that the specified object is not nil.

require.NotNilf(t, err, "error message %s", "formatted")

func NotPanics(t TestingT, f assert.PanicTestFunc, msgAndArgs ...interface{})

Source: require/require.go:1679

NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic.

require.NotPanics(t, func(){ RemainCalm() })

func NotPanicsf(t TestingT, f assert.PanicTestFunc, msg string, args ...interface{})

Source: require/require.go:1692

NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic.

require.NotPanicsf(t, func(){ RemainCalm() }, "error message %s", "formatted")

func NotRegexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{})

Source: require/require.go:1706

NotRegexp asserts that a specified regexp does not match a string.

require.NotRegexp(t, regexp.MustCompile("starts"), "it's starting")
require.NotRegexp(t, "^start", "it's not starting")

func NotRegexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{})

Source: require/require.go:1720

NotRegexpf asserts that a specified regexp does not match a string.

require.NotRegexpf(t, regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted")
require.NotRegexpf(t, "^start", "it's not starting", "error message %s", "formatted")

func NotSame(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require.go:1736

NotSame asserts that two pointers do not reference the same object.

require.NotSame(t, ptr1, ptr2)

Both arguments must be pointer variables. Pointer variable sameness is determined based on the equality of both type and value.

func NotSamef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require.go:1752

NotSamef asserts that two pointers do not reference the same object.

require.NotSamef(t, ptr1, ptr2, "error message %s", "formatted")

Both arguments must be pointer variables. Pointer variable sameness is determined based on the equality of both type and value.

func NotSubset(t TestingT, list interface{}, subset interface{}, msgAndArgs ...interface{})

Source: require/require.go:1771

NotSubset asserts that the list (array, slice, or map) does NOT contain all elements given in the subset (array, slice, or map). Map elements are key-value pairs unless compared with an array or slice where only the map key is evaluated.

require.NotSubset(t, [1, 3, 4], [1, 2])
require.NotSubset(t, {"x": 1, "y": 2}, {"z": 3})
require.NotSubset(t, [1, 3, 4], {1: "one", 2: "two"})
require.NotSubset(t, {"x": 1, "y": 2}, ["z"])

func NotSubsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{})

Source: require/require.go:1790

NotSubsetf asserts that the list (array, slice, or map) does NOT contain all elements given in the subset (array, slice, or map). Map elements are key-value pairs unless compared with an array or slice where only the map key is evaluated.

require.NotSubsetf(t, [1, 3, 4], [1, 2], "error message %s", "formatted")
require.NotSubsetf(t, {"x": 1, "y": 2}, {"z": 3}, "error message %s", "formatted")
require.NotSubsetf(t, [1, 3, 4], {1: "one", 2: "two"}, "error message %s", "formatted")
require.NotSubsetf(t, {"x": 1, "y": 2}, ["z"], "error message %s", "formatted")

func NotZero(t TestingT, i interface{}, msgAndArgs ...interface{})

Source: require/require.go:1801

NotZero asserts that i is not the zero value for its type.

func NotZerof(t TestingT, i interface{}, msg string, args ...interface{})

Source: require/require.go:1812

NotZerof asserts that i is not the zero value for its type.

func Panics(t TestingT, f assert.PanicTestFunc, msgAndArgs ...interface{})

Source: require/require.go:1825

Panics asserts that the code inside the specified PanicTestFunc panics.

require.Panics(t, func(){ GoCrazy() })

func PanicsWithError(t TestingT, errString string, f assert.PanicTestFunc, msgAndArgs ...interface{})

Source: require/require.go:1840

PanicsWithError asserts that the code inside the specified PanicTestFunc panics, and that the recovered panic value is an error that satisfies the EqualError comparison.

require.PanicsWithError(t, "crazy error", func(){ GoCrazy() })

func PanicsWithErrorf(t TestingT, errString string, f assert.PanicTestFunc, msg string, args ...interface{})

Source: require/require.go:1855

PanicsWithErrorf asserts that the code inside the specified PanicTestFunc panics, and that the recovered panic value is an error that satisfies the EqualError comparison.

require.PanicsWithErrorf(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted")

func PanicsWithValue(t TestingT, expected interface{}, f assert.PanicTestFunc, msgAndArgs ...interface{})

Source: require/require.go:1869

PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that the recovered panic value equals the expected panic value.

require.PanicsWithValue(t, "crazy error", func(){ GoCrazy() })

func PanicsWithValuef(t TestingT, expected interface{}, f assert.PanicTestFunc, msg string, args ...interface{})

Source: require/require.go:1883

PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that the recovered panic value equals the expected panic value.

require.PanicsWithValuef(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted")

func Panicsf(t TestingT, f assert.PanicTestFunc, msg string, args ...interface{})

Source: require/require.go:1896

Panicsf asserts that the code inside the specified PanicTestFunc panics.

require.Panicsf(t, func(){ GoCrazy() }, "error message %s", "formatted")

func Positive(t TestingT, e interface{}, msgAndArgs ...interface{})

Source: require/require.go:1910

Positive asserts that the specified element is positive

require.Positive(t, 1)
require.Positive(t, 1.23)

func Positivef(t TestingT, e interface{}, msg string, args ...interface{})

Source: require/require.go:1924

Positivef asserts that the specified element is positive

require.Positivef(t, 1, "error message %s", "formatted")
require.Positivef(t, 1.23, "error message %s", "formatted")

func Regexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{})

Source: require/require.go:1938

Regexp asserts that a specified regexp matches a string.

require.Regexp(t, regexp.MustCompile("start"), "it's starting")
require.Regexp(t, "start...$", "it's not starting")

func Regexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{})

Source: require/require.go:1952

Regexpf asserts that a specified regexp matches a string.

require.Regexpf(t, regexp.MustCompile("start"), "it's starting", "error message %s", "formatted")
require.Regexpf(t, "start...$", "it's not starting", "error message %s", "formatted")

func Same(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require.go:1968

Same asserts that two pointers reference the same object.

require.Same(t, ptr1, ptr2)

Both arguments must be pointer variables. Pointer variable sameness is determined based on the equality of both type and value.

func Samef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require.go:1984

Samef asserts that two pointers reference the same object.

require.Samef(t, ptr1, ptr2, "error message %s", "formatted")

Both arguments must be pointer variables. Pointer variable sameness is determined based on the equality of both type and value.

func Subset(t TestingT, list interface{}, subset interface{}, msgAndArgs ...interface{})

Source: require/require.go:2003

Subset asserts that the list (array, slice, or map) contains all elements given in the subset (array, slice, or map). Map elements are key-value pairs unless compared with an array or slice where only the map key is evaluated.

require.Subset(t, [1, 2, 3], [1, 2])
require.Subset(t, {"x": 1, "y": 2}, {"x": 1})
require.Subset(t, [1, 2, 3], {1: "one", 2: "two"})
require.Subset(t, {"x": 1, "y": 2}, ["x"])

func Subsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{})

Source: require/require.go:2022

Subsetf asserts that the list (array, slice, or map) contains all elements given in the subset (array, slice, or map). Map elements are key-value pairs unless compared with an array or slice where only the map key is evaluated.

require.Subsetf(t, [1, 2, 3], [1, 2], "error message %s", "formatted")
require.Subsetf(t, {"x": 1, "y": 2}, {"x": 1}, "error message %s", "formatted")
require.Subsetf(t, [1, 2, 3], {1: "one", 2: "two"}, "error message %s", "formatted")
require.Subsetf(t, {"x": 1, "y": 2}, ["x"], "error message %s", "formatted")

func True(t TestingT, value bool, msgAndArgs ...interface{})

Source: require/require.go:2035

True asserts that the specified value is true.

require.True(t, myBool)

func Truef(t TestingT, value bool, msg string, args ...interface{})

Source: require/require.go:2048

Truef asserts that the specified value is true.

require.Truef(t, myBool, "error message %s", "formatted")

func WithinDuration(t TestingT, expected time.Time, actual time.Time, delta time.Duration, msgAndArgs ...interface{})

Source: require/require.go:2061

WithinDuration asserts that the two times are within duration delta of each other.

require.WithinDuration(t, time.Now(), time.Now(), 10*time.Second)

func WithinDurationf(t TestingT, expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{})

Source: require/require.go:2074

WithinDurationf asserts that the two times are within duration delta of each other.

require.WithinDurationf(t, time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted")

func WithinRange(t TestingT, actual time.Time, start time.Time, end time.Time, msgAndArgs ...interface{})

Source: require/require.go:2087

WithinRange asserts that a time is within a time range (inclusive).

require.WithinRange(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second))

func WithinRangef(t TestingT, actual time.Time, start time.Time, end time.Time, msg string, args ...interface{})

Source: require/require.go:2100

WithinRangef asserts that a time is within a time range (inclusive).

require.WithinRangef(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), "error message %s", "formatted")

func YAMLEq(t TestingT, expected string, actual string, msgAndArgs ...interface{})

Source: require/require.go:2123

YAMLEq asserts that the first documents in the two YAML strings are equivalent.

expected := `---
key: value
---
key: this is a second document, it is not evaluated
`
actual := `---
key: value
---
key: this is a subsequent document, it is not evaluated
`
require.YAMLEq(t, expected, actual)

func YAMLEqf(t TestingT, expected string, actual string, msg string, args ...interface{})

Source: require/require.go:2146

YAMLEqf asserts that the first documents in the two YAML strings are equivalent.

expected := `---
key: value
---
key: this is a second document, it is not evaluated
`
actual := `---
key: value
---
key: this is a subsequent document, it is not evaluated
`
require.YAMLEqf(t, expected, actual, "error message %s", "formatted")

func Zero(t TestingT, i interface{}, msgAndArgs ...interface{})

Source: require/require.go:2157

Zero asserts that i is the zero value for its type.

func Zerof(t TestingT, i interface{}, msg string, args ...interface{})

Source: require/require.go:2168

Zerof asserts that i is the zero value for its type.

Types

type Assertions

Source: require/forward_requirements.go:5

Assertions provides assertion methods around the TestingT interface.

type Assertions struct {
	// contains filtered or unexported fields
}

func (a *Assertions) Condition(comp assert.Comparison, msgAndArgs ...interface{})

Source: require/require_forward.go:13

Condition uses a Comparison to assert a complex condition.

func (a *Assertions) Conditionf(comp assert.Comparison, msg string, args ...interface{})

Source: require/require_forward.go:21

Conditionf uses a Comparison to assert a complex condition.

func (a *Assertions) Contains(s interface{}, contains interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:34

Contains asserts that the specified string, list(array, slice...) or map contains the specified substring or element.

a.Contains("Hello World", "World")
a.Contains(["Hello", "World"], "World")
a.Contains({"Hello": "World"}, "Hello")

func (a *Assertions) Containsf(s interface{}, contains interface{}, msg string, args ...interface{})

Source: require/require_forward.go:47

Containsf asserts that the specified string, list(array, slice...) or map contains the specified substring or element.

a.Containsf("Hello World", "World", "error message %s", "formatted")
a.Containsf(["Hello", "World"], "World", "error message %s", "formatted")
a.Containsf({"Hello": "World"}, "Hello", "error message %s", "formatted")

func (a *Assertions) DirExists(path string, msgAndArgs ...interface{})

Source: require/require_forward.go:56

DirExists checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists.

func (a *Assertions) DirExistsf(path string, msg string, args ...interface{})

Source: require/require_forward.go:65

DirExistsf checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists.

func (a *Assertions) ElementsMatch(listA interface{}, listB interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:77

ElementsMatch asserts that the specified listA(array, slice...) is equal to specified listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, the number of appearances of each of them in both lists should match.

a.ElementsMatch([1, 3, 2, 3], [1, 3, 3, 2])

func (a *Assertions) ElementsMatchf(listA interface{}, listB interface{}, msg string, args ...interface{})

Source: require/require_forward.go:89

ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, the number of appearances of each of them in both lists should match.

a.ElementsMatchf([1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted")

func (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:109

Empty asserts that the given value is "empty".

Zero values are "empty".

Arrays are "empty" if every element is the zero value of the type (stricter than "empty").

Slices, maps and channels with zero length are "empty".

Pointer values are "empty" if the pointer is nil or if the pointed value is "empty".

a.Empty(obj)

func (a *Assertions) Emptyf(object interface{}, msg string, args ...interface{})

Source: require/require_forward.go:129

Emptyf asserts that the given value is "empty".

Zero values are "empty".

Arrays are "empty" if every element is the zero value of the type (stricter than "empty").

Slices, maps and channels with zero length are "empty".

Pointer values are "empty" if the pointer is nil or if the pointed value is "empty".

a.Emptyf(obj, "error message %s", "formatted")

func (a *Assertions) Equal(expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:143

Equal asserts that two objects are equal.

a.Equal(123, 123)

Pointer variable equality is determined based on the equality of the referenced values (as opposed to the memory addresses). Function equality cannot be determined and will always fail.

func (a *Assertions) EqualError(theError error, errString string, msgAndArgs ...interface{})

Source: require/require_forward.go:155

EqualError asserts that a function returned a non-nil error (i.e. an error) and that it is equal to the provided error.

actualObj, err := SomeFunction()
a.EqualError(err,  expectedErrorString)

func (a *Assertions) EqualErrorf(theError error, errString string, msg string, args ...interface{})

Source: require/require_forward.go:167

EqualErrorf asserts that a function returned a non-nil error (i.e. an error) and that it is equal to the provided error.

actualObj, err := SomeFunction()
a.EqualErrorf(err,  expectedErrorString, "error message %s", "formatted")

func (a *Assertions) EqualExportedValues(expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:184

EqualExportedValues asserts that the types of two objects are equal and their public fields are also equal. This is useful for comparing structs that have private fields that could potentially differ.

 type S struct {
	Exported     	int
	notExported   	int
 }
 a.EqualExportedValues(S{1, 2}, S{1, 3}) => true
 a.EqualExportedValues(S{1, 2}, S{2, 3}) => false

func (a *Assertions) EqualExportedValuesf(expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require_forward.go:201

EqualExportedValuesf asserts that the types of two objects are equal and their public fields are also equal. This is useful for comparing structs that have private fields that could potentially differ.

 type S struct {
	Exported     	int
	notExported   	int
 }
 a.EqualExportedValuesf(S{1, 2}, S{1, 3}, "error message %s", "formatted") => true
 a.EqualExportedValuesf(S{1, 2}, S{2, 3}, "error message %s", "formatted") => false

func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:212

EqualValues asserts that two objects are equal or convertible to the larger type and equal.

a.EqualValues(uint32(123), int32(123))

func (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require_forward.go:223

EqualValuesf asserts that two objects are equal or convertible to the larger type and equal.

a.EqualValuesf(uint32(123), int32(123), "error message %s", "formatted")

func (a *Assertions) Equalf(expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require_forward.go:237

Equalf asserts that two objects are equal.

a.Equalf(123, 123, "error message %s", "formatted")

Pointer variable equality is determined based on the equality of the referenced values (as opposed to the memory addresses). Function equality cannot be determined and will always fail.

func (a *Assertions) Error(err error, msgAndArgs ...interface{})

Source: require/require_forward.go:248

Error asserts that a function returned a non-nil error (ie. an error).

actualObj, err := SomeFunction()
a.Error(err)

func (a *Assertions) ErrorAs(err error, target interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:257

ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. This is a wrapper for errors.As.

func (a *Assertions) ErrorAsf(err error, target interface{}, msg string, args ...interface{})

Source: require/require_forward.go:266

ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. This is a wrapper for errors.As.

func (a *Assertions) ErrorContains(theError error, contains string, msgAndArgs ...interface{})

Source: require/require_forward.go:278

ErrorContains asserts that a function returned a non-nil error (i.e. an error) and that the error contains the specified substring.

actualObj, err := SomeFunction()
a.ErrorContains(err,  expectedErrorSubString)

func (a *Assertions) ErrorContainsf(theError error, contains string, msg string, args ...interface{})

Source: require/require_forward.go:290

ErrorContainsf asserts that a function returned a non-nil error (i.e. an error) and that the error contains the specified substring.

actualObj, err := SomeFunction()
a.ErrorContainsf(err,  expectedErrorSubString, "error message %s", "formatted")

func (a *Assertions) ErrorIs(err error, target error, msgAndArgs ...interface{})

Source: require/require_forward.go:299

ErrorIs asserts that at least one of the errors in err's chain matches target. This is a wrapper for errors.Is.

func (a *Assertions) ErrorIsf(err error, target error, msg string, args ...interface{})

Source: require/require_forward.go:308

ErrorIsf asserts that at least one of the errors in err's chain matches target. This is a wrapper for errors.Is.

func (a *Assertions) Errorf(err error, msg string, args ...interface{})

Source: require/require_forward.go:319

Errorf asserts that a function returned a non-nil error (ie. an error).

actualObj, err := SomeFunction()
a.Errorf(err, "error message %s", "formatted")

func (a *Assertions) Eventually(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{})

Source: require/require_forward.go:330

Eventually asserts that given condition will be met in waitFor time, periodically checking target function each tick.

a.Eventually(func() bool { return true; }, time.Second, 10*time.Millisecond)

func (a *Assertions) EventuallyWithT(condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{})

Source: require/require_forward.go:355

EventuallyWithT asserts that given condition will be met in waitFor time, periodically checking target function each tick. In contrast to Eventually, it supplies a CollectT to the condition function, so that the condition function can use the CollectT to call other assertions. The condition is considered "met" if no errors are raised in a tick. The supplied CollectT collects all errors from one tick (if there are any). If the condition is not met before waitFor, the collected errors of the last tick are copied to t.

externalValue := false
go func() {
	time.Sleep(8*time.Second)
	externalValue = true
}()
a.EventuallyWithT(func(c *assert.CollectT) {
	// add assertions as needed; any assertion failure will fail the current tick
	assert.True(c, externalValue, "expected 'externalValue' to be true")
}, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false")

func (a *Assertions) EventuallyWithTf(condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{})

Source: require/require_forward.go:380

EventuallyWithTf asserts that given condition will be met in waitFor time, periodically checking target function each tick. In contrast to Eventually, it supplies a CollectT to the condition function, so that the condition function can use the CollectT to call other assertions. The condition is considered "met" if no errors are raised in a tick. The supplied CollectT collects all errors from one tick (if there are any). If the condition is not met before waitFor, the collected errors of the last tick are copied to t.

externalValue := false
go func() {
	time.Sleep(8*time.Second)
	externalValue = true
}()
a.EventuallyWithTf(func(c *assert.CollectT) {
	// add assertions as needed; any assertion failure will fail the current tick
	assert.True(c, externalValue, "expected 'externalValue' to be true")
}, 10*time.Second, 1*time.Second, "error message %s", "formatted")

func (a *Assertions) Eventuallyf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{})

Source: require/require_forward.go:391

Eventuallyf asserts that given condition will be met in waitFor time, periodically checking target function each tick.

a.Eventuallyf(func() bool { return true; }, time.Second, 10*time.Millisecond, "error message %s", "formatted")

func (a *Assertions) Exactly(expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:401

Exactly asserts that two objects are equal in value and type.

a.Exactly(int32(123), int64(123))

func (a *Assertions) Exactlyf(expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require_forward.go:411

Exactlyf asserts that two objects are equal in value and type.

a.Exactlyf(int32(123), int64(123), "error message %s", "formatted")

func (a *Assertions) Fail(failureMessage string, msgAndArgs ...interface{})

Source: require/require_forward.go:419

Fail reports a failure through

func (a *Assertions) FailNow(failureMessage string, msgAndArgs ...interface{})

Source: require/require_forward.go:427

FailNow fails test

func (a *Assertions) FailNowf(failureMessage string, msg string, args ...interface{})

Source: require/require_forward.go:435

FailNowf fails test

func (a *Assertions) Failf(failureMessage string, msg string, args ...interface{})

Source: require/require_forward.go:443

Failf reports a failure through

func (a *Assertions) False(value bool, msgAndArgs ...interface{})

Source: require/require_forward.go:453

False asserts that the specified value is false.

a.False(myBool)

func (a *Assertions) Falsef(value bool, msg string, args ...interface{})

Source: require/require_forward.go:463

Falsef asserts that the specified value is false.

a.Falsef(myBool, "error message %s", "formatted")

func (a *Assertions) FileExists(path string, msgAndArgs ...interface{})

Source: require/require_forward.go:472

FileExists checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file.

func (a *Assertions) FileExistsf(path string, msg string, args ...interface{})

Source: require/require_forward.go:481

FileExistsf checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file.

func (a *Assertions) Greater(e1 interface{}, e2 interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:493

Greater asserts that the first element is greater than the second

a.Greater(2, 1)
a.Greater(float64(2), float64(1))
a.Greater("b", "a")

func (a *Assertions) GreaterOrEqual(e1 interface{}, e2 interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:506

GreaterOrEqual asserts that the first element is greater than or equal to the second

a.GreaterOrEqual(2, 1)
a.GreaterOrEqual(2, 2)
a.GreaterOrEqual("b", "a")
a.GreaterOrEqual("b", "b")

func (a *Assertions) GreaterOrEqualf(e1 interface{}, e2 interface{}, msg string, args ...interface{})

Source: require/require_forward.go:519

GreaterOrEqualf asserts that the first element is greater than or equal to the second

a.GreaterOrEqualf(2, 1, "error message %s", "formatted")
a.GreaterOrEqualf(2, 2, "error message %s", "formatted")
a.GreaterOrEqualf("b", "a", "error message %s", "formatted")
a.GreaterOrEqualf("b", "b", "error message %s", "formatted")

func (a *Assertions) Greaterf(e1 interface{}, e2 interface{}, msg string, args ...interface{})

Source: require/require_forward.go:531

Greaterf asserts that the first element is greater than the second

a.Greaterf(2, 1, "error message %s", "formatted")
a.Greaterf(float64(2), float64(1), "error message %s", "formatted")
a.Greaterf("b", "a", "error message %s", "formatted")

func (a *Assertions) HTTPBodyContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:542

HTTPBodyContains asserts that a specified handler returns a body that contains a string.

a.HTTPBodyContains(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky")

func (a *Assertions) HTTPBodyContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{})

Source: require/require_forward.go:553

HTTPBodyContainsf asserts that a specified handler returns a body that contains a string.

a.HTTPBodyContainsf(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted")

func (a *Assertions) HTTPBodyNotContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:564

HTTPBodyNotContains asserts that a specified handler returns a body that does not contain a string.

a.HTTPBodyNotContains(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky")

func (a *Assertions) HTTPBodyNotContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{})

Source: require/require_forward.go:575

HTTPBodyNotContainsf asserts that a specified handler returns a body that does not contain a string.

a.HTTPBodyNotContainsf(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted")

func (a *Assertions) HTTPError(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{})

Source: require/require_forward.go:585

HTTPError asserts that a specified handler returns an error status code.

a.HTTPError(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}}

func (a *Assertions) HTTPErrorf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{})

Source: require/require_forward.go:595

HTTPErrorf asserts that a specified handler returns an error status code.

a.HTTPErrorf(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}}

func (a *Assertions) HTTPRedirect(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{})

Source: require/require_forward.go:605

HTTPRedirect asserts that a specified handler returns a redirect status code.

a.HTTPRedirect(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}}

func (a *Assertions) HTTPRedirectf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{})

Source: require/require_forward.go:615

HTTPRedirectf asserts that a specified handler returns a redirect status code.

a.HTTPRedirectf(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}}

func (a *Assertions) HTTPStatusCode(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msgAndArgs ...interface{})

Source: require/require_forward.go:625

HTTPStatusCode asserts that a specified handler returns a specified status code.

a.HTTPStatusCode(myHandler, "GET", "/notImplemented", nil, 501)

func (a *Assertions) HTTPStatusCodef(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{})

Source: require/require_forward.go:635

HTTPStatusCodef asserts that a specified handler returns a specified status code.

a.HTTPStatusCodef(myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted")

func (a *Assertions) HTTPSuccess(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{})

Source: require/require_forward.go:645

HTTPSuccess asserts that a specified handler returns a success status code.

a.HTTPSuccess(myHandler, "POST", "http://www.google.com", nil)

func (a *Assertions) HTTPSuccessf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{})

Source: require/require_forward.go:655

HTTPSuccessf asserts that a specified handler returns a success status code.

a.HTTPSuccessf(myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted")

func (a *Assertions) Implements(interfaceObject interface{}, object interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:665

Implements asserts that an object is implemented by the specified interface.

a.Implements((*MyInterface)(nil), new(MyObject))

func (a *Assertions) Implementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{})

Source: require/require_forward.go:675

Implementsf asserts that an object is implemented by the specified interface.

a.Implementsf((*MyInterface)(nil), new(MyObject), "error message %s", "formatted")

func (a *Assertions) InDelta(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{})

Source: require/require_forward.go:685

InDelta asserts that the two numerals are within delta of each other.

a.InDelta(math.Pi, 22/7.0, 0.01)

func (a *Assertions) InDeltaMapValues(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{})

Source: require/require_forward.go:693

InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.

func (a *Assertions) InDeltaMapValuesf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{})

Source: require/require_forward.go:701

InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.

func (a *Assertions) InDeltaSlice(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{})

Source: require/require_forward.go:709

InDeltaSlice is the same as InDelta, except it compares two slices.

func (a *Assertions) InDeltaSlicef(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{})

Source: require/require_forward.go:717

InDeltaSlicef is the same as InDelta, except it compares two slices.

func (a *Assertions) InDeltaf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{})

Source: require/require_forward.go:727

InDeltaf asserts that the two numerals are within delta of each other.

a.InDeltaf(math.Pi, 22/7.0, 0.01, "error message %s", "formatted")

func (a *Assertions) InEpsilon(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{})

Source: require/require_forward.go:735

InEpsilon asserts that expected and actual have a relative error less than epsilon

func (a *Assertions) InEpsilonSlice(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{})

Source: require/require_forward.go:743

InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices.

func (a *Assertions) InEpsilonSlicef(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{})

Source: require/require_forward.go:751

InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices.

func (a *Assertions) InEpsilonf(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{})

Source: require/require_forward.go:759

InEpsilonf asserts that expected and actual have a relative error less than epsilon

func (a *Assertions) IsDecreasing(object interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:771

IsDecreasing asserts that the collection is decreasing

a.IsDecreasing([]int{2, 1, 0})
a.IsDecreasing([]float{2, 1})
a.IsDecreasing([]string{"b", "a"})

func (a *Assertions) IsDecreasingf(object interface{}, msg string, args ...interface{})

Source: require/require_forward.go:783

IsDecreasingf asserts that the collection is decreasing

a.IsDecreasingf([]int{2, 1, 0}, "error message %s", "formatted")
a.IsDecreasingf([]float{2, 1}, "error message %s", "formatted")
a.IsDecreasingf([]string{"b", "a"}, "error message %s", "formatted")

func (a *Assertions) IsIncreasing(object interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:795

IsIncreasing asserts that the collection is increasing

a.IsIncreasing([]int{1, 2, 3})
a.IsIncreasing([]float{1, 2})
a.IsIncreasing([]string{"a", "b"})

func (a *Assertions) IsIncreasingf(object interface{}, msg string, args ...interface{})

Source: require/require_forward.go:807

IsIncreasingf asserts that the collection is increasing

a.IsIncreasingf([]int{1, 2, 3}, "error message %s", "formatted")
a.IsIncreasingf([]float{1, 2}, "error message %s", "formatted")
a.IsIncreasingf([]string{"a", "b"}, "error message %s", "formatted")

func (a *Assertions) IsNonDecreasing(object interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:819

IsNonDecreasing asserts that the collection is not decreasing

a.IsNonDecreasing([]int{1, 1, 2})
a.IsNonDecreasing([]float{1, 2})
a.IsNonDecreasing([]string{"a", "b"})

func (a *Assertions) IsNonDecreasingf(object interface{}, msg string, args ...interface{})

Source: require/require_forward.go:831

IsNonDecreasingf asserts that the collection is not decreasing

a.IsNonDecreasingf([]int{1, 1, 2}, "error message %s", "formatted")
a.IsNonDecreasingf([]float{1, 2}, "error message %s", "formatted")
a.IsNonDecreasingf([]string{"a", "b"}, "error message %s", "formatted")

func (a *Assertions) IsNonIncreasing(object interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:843

IsNonIncreasing asserts that the collection is not increasing

a.IsNonIncreasing([]int{2, 1, 1})
a.IsNonIncreasing([]float{2, 1})
a.IsNonIncreasing([]string{"b", "a"})

func (a *Assertions) IsNonIncreasingf(object interface{}, msg string, args ...interface{})

Source: require/require_forward.go:855

IsNonIncreasingf asserts that the collection is not increasing

a.IsNonIncreasingf([]int{2, 1, 1}, "error message %s", "formatted")
a.IsNonIncreasingf([]float{2, 1}, "error message %s", "formatted")
a.IsNonIncreasingf([]string{"b", "a"}, "error message %s", "formatted")

func (a *Assertions) IsNotType(theType interface{}, object interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:865

IsNotType asserts that the specified objects are not of the same type.

a.IsNotType(&NotMyStruct{}, &MyStruct{})

func (a *Assertions) IsNotTypef(theType interface{}, object interface{}, msg string, args ...interface{})

Source: require/require_forward.go:875

IsNotTypef asserts that the specified objects are not of the same type.

a.IsNotTypef(&NotMyStruct{}, &MyStruct{}, "error message %s", "formatted")

func (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:885

IsType asserts that the specified objects are of the same type.

a.IsType(&MyStruct{}, &MyStruct{})

func (a *Assertions) IsTypef(expectedType interface{}, object interface{}, msg string, args ...interface{})

Source: require/require_forward.go:895

IsTypef asserts that the specified objects are of the same type.

a.IsTypef(&MyStruct{}, &MyStruct{}, "error message %s", "formatted")

func (a *Assertions) JSONEq(expected string, actual string, msgAndArgs ...interface{})

Source: require/require_forward.go:905

JSONEq asserts that two JSON strings are equivalent.

a.JSONEq(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`)

func (a *Assertions) JSONEqf(expected string, actual string, msg string, args ...interface{})

Source: require/require_forward.go:915

JSONEqf asserts that two JSON strings are equivalent.

a.JSONEqf(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted")

func (a *Assertions) Len(object interface{}, length int, msgAndArgs ...interface{})

Source: require/require_forward.go:926

Len asserts that the specified object has specific length. Len also fails if the object has a type that len() not accept.

a.Len(mySlice, 3)

func (a *Assertions) Lenf(object interface{}, length int, msg string, args ...interface{})

Source: require/require_forward.go:937

Lenf asserts that the specified object has specific length. Lenf also fails if the object has a type that len() not accept.

a.Lenf(mySlice, 3, "error message %s", "formatted")

func (a *Assertions) Less(e1 interface{}, e2 interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:949

Less asserts that the first element is less than the second

a.Less(1, 2)
a.Less(float64(1), float64(2))
a.Less("a", "b")

func (a *Assertions) LessOrEqual(e1 interface{}, e2 interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:962

LessOrEqual asserts that the first element is less than or equal to the second

a.LessOrEqual(1, 2)
a.LessOrEqual(2, 2)
a.LessOrEqual("a", "b")
a.LessOrEqual("b", "b")

func (a *Assertions) LessOrEqualf(e1 interface{}, e2 interface{}, msg string, args ...interface{})

Source: require/require_forward.go:975

LessOrEqualf asserts that the first element is less than or equal to the second

a.LessOrEqualf(1, 2, "error message %s", "formatted")
a.LessOrEqualf(2, 2, "error message %s", "formatted")
a.LessOrEqualf("a", "b", "error message %s", "formatted")
a.LessOrEqualf("b", "b", "error message %s", "formatted")

func (a *Assertions) Lessf(e1 interface{}, e2 interface{}, msg string, args ...interface{})

Source: require/require_forward.go:987

Lessf asserts that the first element is less than the second

a.Lessf(1, 2, "error message %s", "formatted")
a.Lessf(float64(1), float64(2), "error message %s", "formatted")
a.Lessf("a", "b", "error message %s", "formatted")

func (a *Assertions) Negative(e interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:998

Negative asserts that the specified element is negative

a.Negative(-1)
a.Negative(-1.23)

func (a *Assertions) Negativef(e interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1009

Negativef asserts that the specified element is negative

a.Negativef(-1, "error message %s", "formatted")
a.Negativef(-1.23, "error message %s", "formatted")

func (a *Assertions) Never(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{})

Source: require/require_forward.go:1020

Never asserts that the given condition doesn't satisfy in waitFor time, periodically checking the target function each tick.

a.Never(func() bool { return false; }, time.Second, 10*time.Millisecond)

func (a *Assertions) Neverf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{})

Source: require/require_forward.go:1031

Neverf asserts that the given condition doesn't satisfy in waitFor time, periodically checking the target function each tick.

a.Neverf(func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted")

func (a *Assertions) Nil(object interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1041

Nil asserts that the specified object is nil.

a.Nil(err)

func (a *Assertions) Nilf(object interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1051

Nilf asserts that the specified object is nil.

a.Nilf(err, "error message %s", "formatted")

func (a *Assertions) NoDirExists(path string, msgAndArgs ...interface{})

Source: require/require_forward.go:1060

NoDirExists checks whether a directory does not exist in the given path. It fails if the path points to an existing _directory_ only.

func (a *Assertions) NoDirExistsf(path string, msg string, args ...interface{})

Source: require/require_forward.go:1069

NoDirExistsf checks whether a directory does not exist in the given path. It fails if the path points to an existing _directory_ only.

func (a *Assertions) NoError(err error, msgAndArgs ...interface{})

Source: require/require_forward.go:1081

NoError asserts that a function returned a nil error (ie. no error).

actualObj, err := SomeFunction()
a.NoError(err)
a.Equal(expectedObj, actualObj)

func (a *Assertions) NoErrorf(err error, msg string, args ...interface{})

Source: require/require_forward.go:1093

NoErrorf asserts that a function returned a nil error (ie. no error).

actualObj, err := SomeFunction()
a.NoErrorf(err, "error message %s", "formatted")
a.Equal(expectedObj, actualObj)

func (a *Assertions) NoFileExists(path string, msgAndArgs ...interface{})

Source: require/require_forward.go:1102

NoFileExists checks whether a file does not exist in a given path. It fails if the path points to an existing _file_ only.

func (a *Assertions) NoFileExistsf(path string, msg string, args ...interface{})

Source: require/require_forward.go:1111

NoFileExistsf checks whether a file does not exist in a given path. It fails if the path points to an existing _file_ only.

func (a *Assertions) NotContains(s interface{}, contains interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1124

NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the specified substring or element.

a.NotContains("Hello World", "Earth")
a.NotContains(["Hello", "World"], "Earth")
a.NotContains({"Hello": "World"}, "Earth")

func (a *Assertions) NotContainsf(s interface{}, contains interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1137

NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the specified substring or element.

a.NotContainsf("Hello World", "Earth", "error message %s", "formatted")
a.NotContainsf(["Hello", "World"], "Earth", "error message %s", "formatted")
a.NotContainsf({"Hello": "World"}, "Earth", "error message %s", "formatted")

func (a *Assertions) NotElementsMatch(listA interface{}, listB interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1154

NotElementsMatch asserts that the specified listA(array, slice...) is NOT equal to specified listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, the number of appearances of each of them in both lists should not match. This is an inverse of ElementsMatch.

a.NotElementsMatch([1, 1, 2, 3], [1, 1, 2, 3]) -> false

a.NotElementsMatch([1, 1, 2, 3], [1, 2, 3]) -> true

a.NotElementsMatch([1, 2, 3], [1, 2, 4]) -> true

func (a *Assertions) NotElementsMatchf(listA interface{}, listB interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1171

NotElementsMatchf asserts that the specified listA(array, slice...) is NOT equal to specified listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, the number of appearances of each of them in both lists should not match. This is an inverse of ElementsMatch.

a.NotElementsMatchf([1, 1, 2, 3], [1, 1, 2, 3], "error message %s", "formatted") -> false

a.NotElementsMatchf([1, 1, 2, 3], [1, 2, 3], "error message %s", "formatted") -> true

a.NotElementsMatchf([1, 2, 3], [1, 2, 4], "error message %s", "formatted") -> true

func (a *Assertions) NotEmpty(object interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1182

NotEmpty asserts that the specified object is NOT Empty.

a.NotEmpty(obj)
a.Equal("two", obj[1])

func (a *Assertions) NotEmptyf(object interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1193

NotEmptyf asserts that the specified object is NOT Empty.

a.NotEmptyf(obj, "error message %s", "formatted")
a.Equal("two", obj[1])

func (a *Assertions) NotEqual(expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1206

NotEqual asserts that the specified values are NOT equal.

a.NotEqual(obj1, obj2)

Pointer variable equality is determined based on the equality of the referenced values (as opposed to the memory addresses).

func (a *Assertions) NotEqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1216

NotEqualValues asserts that two objects are not equal even when converted to the same type

a.NotEqualValues(obj1, obj2)

func (a *Assertions) NotEqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1226

NotEqualValuesf asserts that two objects are not equal even when converted to the same type

a.NotEqualValuesf(obj1, obj2, "error message %s", "formatted")

func (a *Assertions) NotEqualf(expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1239

NotEqualf asserts that the specified values are NOT equal.

a.NotEqualf(obj1, obj2, "error message %s", "formatted")

Pointer variable equality is determined based on the equality of the referenced values (as opposed to the memory addresses).

func (a *Assertions) NotErrorAs(err error, target interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1248

NotErrorAs asserts that none of the errors in err's chain matches target, but if so, sets target to that error value.

func (a *Assertions) NotErrorAsf(err error, target interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1257

NotErrorAsf asserts that none of the errors in err's chain matches target, but if so, sets target to that error value.

func (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface{})

Source: require/require_forward.go:1266

NotErrorIs asserts that none of the errors in err's chain matches target. This is a wrapper for errors.Is.

func (a *Assertions) NotErrorIsf(err error, target error, msg string, args ...interface{})

Source: require/require_forward.go:1275

NotErrorIsf asserts that none of the errors in err's chain matches target. This is a wrapper for errors.Is.

func (a *Assertions) NotImplements(interfaceObject interface{}, object interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1285

NotImplements asserts that an object does not implement the specified interface.

a.NotImplements((*MyInterface)(nil), new(MyObject))

func (a *Assertions) NotImplementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1295

NotImplementsf asserts that an object does not implement the specified interface.

a.NotImplementsf((*MyInterface)(nil), new(MyObject), "error message %s", "formatted")

func (a *Assertions) NotNil(object interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1305

NotNil asserts that the specified object is not nil.

a.NotNil(err)

func (a *Assertions) NotNilf(object interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1315

NotNilf asserts that the specified object is not nil.

a.NotNilf(err, "error message %s", "formatted")

func (a *Assertions) NotPanics(f assert.PanicTestFunc, msgAndArgs ...interface{})

Source: require/require_forward.go:1325

NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic.

a.NotPanics(func(){ RemainCalm() })

func (a *Assertions) NotPanicsf(f assert.PanicTestFunc, msg string, args ...interface{})

Source: require/require_forward.go:1335

NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic.

a.NotPanicsf(func(){ RemainCalm() }, "error message %s", "formatted")

func (a *Assertions) NotRegexp(rx interface{}, str interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1346

NotRegexp asserts that a specified regexp does not match a string.

a.NotRegexp(regexp.MustCompile("starts"), "it's starting")
a.NotRegexp("^start", "it's not starting")

func (a *Assertions) NotRegexpf(rx interface{}, str interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1357

NotRegexpf asserts that a specified regexp does not match a string.

a.NotRegexpf(regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted")
a.NotRegexpf("^start", "it's not starting", "error message %s", "formatted")

func (a *Assertions) NotSame(expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1370

NotSame asserts that two pointers do not reference the same object.

a.NotSame(ptr1, ptr2)

Both arguments must be pointer variables. Pointer variable sameness is determined based on the equality of both type and value.

func (a *Assertions) NotSamef(expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1383

NotSamef asserts that two pointers do not reference the same object.

a.NotSamef(ptr1, ptr2, "error message %s", "formatted")

Both arguments must be pointer variables. Pointer variable sameness is determined based on the equality of both type and value.

func (a *Assertions) NotSubset(list interface{}, subset interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1399

NotSubset asserts that the list (array, slice, or map) does NOT contain all elements given in the subset (array, slice, or map). Map elements are key-value pairs unless compared with an array or slice where only the map key is evaluated.

a.NotSubset([1, 3, 4], [1, 2])
a.NotSubset({"x": 1, "y": 2}, {"z": 3})
a.NotSubset([1, 3, 4], {1: "one", 2: "two"})
a.NotSubset({"x": 1, "y": 2}, ["z"])

func (a *Assertions) NotSubsetf(list interface{}, subset interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1415

NotSubsetf asserts that the list (array, slice, or map) does NOT contain all elements given in the subset (array, slice, or map). Map elements are key-value pairs unless compared with an array or slice where only the map key is evaluated.

a.NotSubsetf([1, 3, 4], [1, 2], "error message %s", "formatted")
a.NotSubsetf({"x": 1, "y": 2}, {"z": 3}, "error message %s", "formatted")
a.NotSubsetf([1, 3, 4], {1: "one", 2: "two"}, "error message %s", "formatted")
a.NotSubsetf({"x": 1, "y": 2}, ["z"], "error message %s", "formatted")

func (a *Assertions) NotZero(i interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1423

NotZero asserts that i is not the zero value for its type.

func (a *Assertions) NotZerof(i interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1431

NotZerof asserts that i is not the zero value for its type.

func (a *Assertions) Panics(f assert.PanicTestFunc, msgAndArgs ...interface{})

Source: require/require_forward.go:1441

Panics asserts that the code inside the specified PanicTestFunc panics.

a.Panics(func(){ GoCrazy() })

func (a *Assertions) PanicsWithError(errString string, f assert.PanicTestFunc, msgAndArgs ...interface{})

Source: require/require_forward.go:1453

PanicsWithError asserts that the code inside the specified PanicTestFunc panics, and that the recovered panic value is an error that satisfies the EqualError comparison.

a.PanicsWithError("crazy error", func(){ GoCrazy() })

func (a *Assertions) PanicsWithErrorf(errString string, f assert.PanicTestFunc, msg string, args ...interface{})

Source: require/require_forward.go:1465

PanicsWithErrorf asserts that the code inside the specified PanicTestFunc panics, and that the recovered panic value is an error that satisfies the EqualError comparison.

a.PanicsWithErrorf("crazy error", func(){ GoCrazy() }, "error message %s", "formatted")

func (a *Assertions) PanicsWithValue(expected interface{}, f assert.PanicTestFunc, msgAndArgs ...interface{})

Source: require/require_forward.go:1476

PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that the recovered panic value equals the expected panic value.

a.PanicsWithValue("crazy error", func(){ GoCrazy() })

func (a *Assertions) PanicsWithValuef(expected interface{}, f assert.PanicTestFunc, msg string, args ...interface{})

Source: require/require_forward.go:1487

PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that the recovered panic value equals the expected panic value.

a.PanicsWithValuef("crazy error", func(){ GoCrazy() }, "error message %s", "formatted")

func (a *Assertions) Panicsf(f assert.PanicTestFunc, msg string, args ...interface{})

Source: require/require_forward.go:1497

Panicsf asserts that the code inside the specified PanicTestFunc panics.

a.Panicsf(func(){ GoCrazy() }, "error message %s", "formatted")

func (a *Assertions) Positive(e interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1508

Positive asserts that the specified element is positive

a.Positive(1)
a.Positive(1.23)

func (a *Assertions) Positivef(e interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1519

Positivef asserts that the specified element is positive

a.Positivef(1, "error message %s", "formatted")
a.Positivef(1.23, "error message %s", "formatted")

func (a *Assertions) Regexp(rx interface{}, str interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1530

Regexp asserts that a specified regexp matches a string.

a.Regexp(regexp.MustCompile("start"), "it's starting")
a.Regexp("start...$", "it's not starting")

func (a *Assertions) Regexpf(rx interface{}, str interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1541

Regexpf asserts that a specified regexp matches a string.

a.Regexpf(regexp.MustCompile("start"), "it's starting", "error message %s", "formatted")
a.Regexpf("start...$", "it's not starting", "error message %s", "formatted")

func (a *Assertions) Same(expected interface{}, actual interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1554

Same asserts that two pointers reference the same object.

a.Same(ptr1, ptr2)

Both arguments must be pointer variables. Pointer variable sameness is determined based on the equality of both type and value.

func (a *Assertions) Samef(expected interface{}, actual interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1567

Samef asserts that two pointers reference the same object.

a.Samef(ptr1, ptr2, "error message %s", "formatted")

Both arguments must be pointer variables. Pointer variable sameness is determined based on the equality of both type and value.

func (a *Assertions) Subset(list interface{}, subset interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1583

Subset asserts that the list (array, slice, or map) contains all elements given in the subset (array, slice, or map). Map elements are key-value pairs unless compared with an array or slice where only the map key is evaluated.

a.Subset([1, 2, 3], [1, 2])
a.Subset({"x": 1, "y": 2}, {"x": 1})
a.Subset([1, 2, 3], {1: "one", 2: "two"})
a.Subset({"x": 1, "y": 2}, ["x"])

func (a *Assertions) Subsetf(list interface{}, subset interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1599

Subsetf asserts that the list (array, slice, or map) contains all elements given in the subset (array, slice, or map). Map elements are key-value pairs unless compared with an array or slice where only the map key is evaluated.

a.Subsetf([1, 2, 3], [1, 2], "error message %s", "formatted")
a.Subsetf({"x": 1, "y": 2}, {"x": 1}, "error message %s", "formatted")
a.Subsetf([1, 2, 3], {1: "one", 2: "two"}, "error message %s", "formatted")
a.Subsetf({"x": 1, "y": 2}, ["x"], "error message %s", "formatted")

func (a *Assertions) True(value bool, msgAndArgs ...interface{})

Source: require/require_forward.go:1609

True asserts that the specified value is true.

a.True(myBool)

func (a *Assertions) Truef(value bool, msg string, args ...interface{})

Source: require/require_forward.go:1619

Truef asserts that the specified value is true.

a.Truef(myBool, "error message %s", "formatted")

func (a *Assertions) WithinDuration(expected time.Time, actual time.Time, delta time.Duration, msgAndArgs ...interface{})

Source: require/require_forward.go:1629

WithinDuration asserts that the two times are within duration delta of each other.

a.WithinDuration(time.Now(), time.Now(), 10*time.Second)

func (a *Assertions) WithinDurationf(expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{})

Source: require/require_forward.go:1639

WithinDurationf asserts that the two times are within duration delta of each other.

a.WithinDurationf(time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted")

func (a *Assertions) WithinRange(actual time.Time, start time.Time, end time.Time, msgAndArgs ...interface{})

Source: require/require_forward.go:1649

WithinRange asserts that a time is within a time range (inclusive).

a.WithinRange(time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second))

func (a *Assertions) WithinRangef(actual time.Time, start time.Time, end time.Time, msg string, args ...interface{})

Source: require/require_forward.go:1659

WithinRangef asserts that a time is within a time range (inclusive).

a.WithinRangef(time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), "error message %s", "formatted")

func (a *Assertions) YAMLEq(expected string, actual string, msgAndArgs ...interface{})

Source: require/require_forward.go:1679

YAMLEq asserts that the first documents in the two YAML strings are equivalent.

expected := `---
key: value
---
key: this is a second document, it is not evaluated
`
actual := `---
key: value
---
key: this is a subsequent document, it is not evaluated
`
a.YAMLEq(expected, actual)

func (a *Assertions) YAMLEqf(expected string, actual string, msg string, args ...interface{})

Source: require/require_forward.go:1699

YAMLEqf asserts that the first documents in the two YAML strings are equivalent.

expected := `---
key: value
---
key: this is a second document, it is not evaluated
`
actual := `---
key: value
---
key: this is a subsequent document, it is not evaluated
`
a.YAMLEqf(expected, actual, "error message %s", "formatted")

func (a *Assertions) Zero(i interface{}, msgAndArgs ...interface{})

Source: require/require_forward.go:1707

Zero asserts that i is the zero value for its type.

func (a *Assertions) Zerof(i interface{}, msg string, args ...interface{})

Source: require/require_forward.go:1715

Zerof asserts that i is the zero value for its type.

type BoolAssertionFunc

Source: require/requirements.go:23

BoolAssertionFunc is a common function prototype when validating a bool value. Can be useful for table driven tests.

type BoolAssertionFunc = func(TestingT, bool, ...interface{})
Example
{
	t := &testing.T{}

	isOkay := func(x int) bool {
		return x >= 42
	}

	tests := []struct {
		name      string
		arg       int
		assertion BoolAssertionFunc
	}{
		{"-1 is bad", -1, False},
		{"42 is good", 42, True},
		{"41 is bad", 41, False},
		{"45 is cool", 45, True},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			tt.assertion(t, isOkay(tt.arg))
		})
	}
}

type ComparisonAssertionFunc

Source: require/requirements.go:15

ComparisonAssertionFunc is a common function prototype when comparing two values. Can be useful for table driven tests.

type ComparisonAssertionFunc = func(TestingT, interface{}, interface{}, ...interface{})
Example
{
	t := &testing.T{}

	adder := func(x, y int) int {
		return x + y
	}

	type args struct {
		x int
		y int
	}

	tests := []struct {
		name      string
		args      args
		expect    int
		assertion ComparisonAssertionFunc
	}{
		{"2+2=4", args{2, 2}, 4, Equal},
		{"2+2!=5", args{2, 2}, 5, NotEqual},
		{"2+3==5", args{2, 3}, 5, Exactly},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			tt.assertion(t, tt.expect, adder(tt.args.x, tt.args.y))
		})
	}
}

type ErrorAssertionFunc

Source: require/requirements.go:27

ErrorAssertionFunc is a common function prototype when validating an error value. Can be useful for table driven tests.

type ErrorAssertionFunc = func(TestingT, error, ...interface{})
Example
{
	t := &testing.T{}

	dumbParseNum := func(input string, v interface{}) error {
		return json.Unmarshal([]byte(input), v)
	}

	tests := []struct {
		name      string
		arg       string
		assertion ErrorAssertionFunc
	}{
		{"1.2 is number", "1.2", NoError},
		{"1.2.3 not number", "1.2.3", Error},
		{"true is not number", "true", Error},
		{"3 is number", "3", NoError},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			var x float64
			tt.assertion(t, dumbParseNum(tt.arg, &x))
		})
	}
}

type TestingT

Source: require/requirements.go:4

TestingT is an interface wrapper around *testing.T

type TestingT interface {
	Errorf(format string, args ...interface{})
	FailNow()
}
Methods
  • Errorf func(format string, args ...interface{})
  • FailNow func()

type ValueAssertionFunc

Source: require/requirements.go:19

ValueAssertionFunc is a common function prototype when validating a single value. Can be useful for table driven tests.

type ValueAssertionFunc = func(TestingT, interface{}, ...interface{})
Example
{
	t := &testing.T{}

	dumbParse := func(input string) interface{} {
		var x interface{}
		json.Unmarshal([]byte(input), &x)
		return x
	}

	tests := []struct {
		name      string
		arg       string
		assertion ValueAssertionFunc
	}{
		{"true is not nil", "true", NotNil},
		{"empty string is nil", "", Nil},
		{"zero is not nil", "0", NotNil},
		{"zero is zero", "0", Zero},
		{"false is zero", "false", Zero},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			tt.assertion(t, dumbParse(tt.arg))
		})
	}
}
Testify API Reference - Anonymux Docs. Generated with Sourcey v3.8.3 from github.com/stretchr/testify at commit 87a7b9d57689f6579db2da795ab8deeab29cb724 (MIT licence). Published by spore-crew (AI-assisted work under @ASporeTeam). Last built 2026-10-22 13:09 UTC.AboutUpstream repositoryEvidenceDocs by Sourcey