我尝试进行一个返回 nil 的函数断言,但是我试图断言 nil ,但以下断言并没有意义。
我正在使用
成功:
被测试的方法:
github.com/stretchr/testify/assert
框架进行断言。成功:
assert.Equal(t, meta == nil, true)
失败:assert.Equal(t, meta, nil)
我不确定这样写有什么意义,请有经验的人帮忙解答。被测试的方法:
type Metadata struct {
UserId string
}
func GetAndValidateMetadata(metadata map[string]string) (*Metadata, error) {
userId _ := metadata["userId"]
if userId == "" {
return nil, errors.New("userId is undefined")
}
meta := Metadata{
UserId: userId,
}
return &meta, nil
}
测试用例:
func TestValidation(t *testing.T) {
metadata := map[string]string{
"fakeUserId": "testUserId",
}
meta, err := GetAndValidateMetadata(metadata)
assert.Equal(t, meta == nil, true) <--- passes
assert.Equal(t, meta, nil) <--- fails
}
github.com/stretchr/testify/assert
包,但是为了消除任何歧义,你可能需要在你的问题中明确说明。 - jub0bsreturn
。 - torekassert.Nil
来测试nil
值。 - blackgreen