Testify require and assert: Difference between revisions
Jump to navigation
Jump to search
Line 4: | Line 4: | ||
* [[Github.com/stretchr/testify#Assertions|Testify]] | * [[Github.com/stretchr/testify#Assertions|Testify]] | ||
=Overview= | =Overview= | ||
<code>assert</code> means '''continue on error'''. | |||
=Equality and Non-Equality= | =Equality and Non-Equality= | ||
In case the result is failure, <code>Equal()</code> and <code>NotEqual()</code> delegate to <code>Fail()</code>. | In case the result is failure, <code>Equal()</code> and <code>NotEqual()</code> delegate to <code>Fail()</code>. |
Revision as of 01:10, 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")