欢迎各位小伙伴来到编程网,相聚于此都是缘哈哈哈!今天我给大家带来《由于先前的测试用例失败而引发断言异常》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!
我想不出更好的标题。
在以下代码中,如果 rollbacklogger
是 nil
,则第一个测试用例将失败,但所有其他测试用例将引发异常。
除了使用 if
语句之外,还有其他方法可以避免这种情况吗?
我相信这是单元测试中非常常见的情况,并且 assert
中应该有一些函数或其他方法来避免这种情况。
assert.NotNil(rollbackLogger)
assert.Equal("Action", rollBackLogger[0].Action)
assert.Equal("random path", rollBackLogger[0].FilePath)
解决方案
如果您希望测试在条件无效时失败,则可以简单地使用 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)
请改用 require.NotNil。
require.noerror 也特别有用。
好了,本文到此结束,带大家了解了《由于先前的测试用例失败而引发断言异常》,希望本文对你有所帮助!关注编程网公众号,给大家分享更多Golang知识!