Github.com/stretchr/testify: Difference between revisions
Jump to navigation
Jump to search
(→Mocks) |
(→Mocks) |
||
Line 49: | Line 49: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Mocks== | ==Mocks== | ||
{{External|https://pkg.go.dev/github.com/stretchr/testify/mock}} | |||
<syntaxhighlight lang='go'> | <syntaxhighlight lang='go'> | ||
Revision as of 20:53, 6 March 2024
External
Internal
Overview
Installation
go get github.com/stretchr/testify
Programming Model
Assertions
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")
Mocks
...
type MockMyService struct {
mock.Mock
}
func (m * MockMyService) Start() error {
...
}
...
mockMyService := new(MockMyService)