Testify require and assert: Difference between revisions
Jump to navigation
Jump to search
m (Ovidiu moved page Testify Assertions to Testify require and assert without leaving a redirect) |
|||
Line 2: | Line 2: | ||
* https://pkg.go.dev/github.com/stretchr/testify#readme-assert-package | * https://pkg.go.dev/github.com/stretchr/testify#readme-assert-package | ||
=Internal= | =Internal= | ||
* [[Github.com/stretchr/testify# | * [[Github.com/stretchr/testify#require_and_assert|Testify]] | ||
=Overview= | =Overview= | ||
Revision as of 16:55, 12 March 2024
External
Internal
Overview
assert
means continue on error.
Equality and Non-Equality
In case the result is failure, Equal()
and NotEqual()
delegate to Fail()
.
package somepkg
import (
"testing"
testifyassert "github.com/stretchr/testify/assert"
)
func TestSomething(t *testing.T) {
assert := testifyassert.New(t)
assert.Equal(123, 123, "this message is displayed when the test fails %s", "because of inequality")
assert.NotEqual(123, 321, "this message is displayed when the test fails %s", "because of equality")
}
Nil and Non-Nil
In case the result is failure, Nil()
and NotNil()
delegate to Fail()
.
package somepkg
import (
"testing"
testifyassert "github.com/stretchr/testify/assert"
)
func TestSomething(t *testing.T) {
assert := testifyassert.New(t)
someObj := &struct{}{}
assert.NotNil(someObj, "someObj should not have been nil but it is %v", someObj)
someObj = nil
assert.Nil(someObj, "someObj should have been nil but it is %v", someObj)
}
Failing the Test
Fail()
Failf()
FailNow()
Failing a Test from a Goroutine
package yours
import (
"testing"
tassert "github.com/stretchr/testify/assert"
)
func TestSomething(t *testing.T) {
assert := tassert.New(t)
// assert equality
assert.Equal(123, 123, "they should be equal")
// assert inequality
assert.NotEqual(123, 456, "they should not be equal")
// assert for nil (good for errors)
assert.Nil(object)
// assert for not nil (good when you expect something)
if assert.NotNil(object) {
// now we know that object isn't nil, we are safe to make
// further assertions without causing any errors
assert.Equal("Something", object.Value)
}
}
To check that an error has the expected message:
err := ...
assert.NotNil(err)
assert.Equal(err.Error(), "expected message")