我想不出更好的标题。
在以下代码中,如果rollBackLogger
为nil
,则第一个测试用例将失败,但所有其他测试用例都将引发异常。
除了使用if
语句以外,还有其他方法可以避免这种情况吗?
我认为这是单元测试的一种非常常见的情况,assert
中应该有一些功能或其他某种方式可以避免这种情况。
assert.NotNil(rollbackLogger)
assert.Equal("Action", rollBackLogger[0].Action)
assert.Equal("random path", rollBackLogger[0].FilePath)
答案 0 :(得分:3)
答案 1 :(得分:2)
如果条件无效,如果您希望测试失败,则可以简单地使用t.FailNow()
。
我认为没有断言失败而不使用条件或外部程序包的方法。
if !assert.NotNil(rollbackLogger) {
t.FailNow()
}
assert.Equal("Action", rollBackLogger[0].Action)
assert.Equal("random path", rollBackLogger[0].FilePath)
或者如果您使用testify/assert
包,
if !assert.NotNil(rollbackLogger) {
assert.FailNow(t, "message")
}
assert.Equal("Action", rollBackLogger[0].Action)
assert.Equal("random path", rollBackLogger[0].FilePath)