我在单元测试中使用了Groovy脚本。我有以下代码片段,并且在单个测试脚本中使用了多个断言。
def a ='welcome'
def b ='test'
def c ='welcome'
assert a==b
assert a==c
第一个断言失败,执行被停止。但我想继续编写更多代码段。
类似于硒中的软断言,我应该如何在Groovy中收集所有失败异常。
答案 0 :(得分:2)
在Groovy和Java中,AssertionErrors是程序无法从中恢复的错误。我建议您设置单元测试以对每个测试进行测试/声明一件事。这是单元测试的最佳实践,它使识别测试失败的原因变得更加容易。
您的示例使显而易见的断言失败了。考虑到在进行构建测试时,不一定是这种情况。通过每个测试一个断言,您可以通过测试名称识别原因。如果您要使用断言以外的其他方式进行验证,则测试将在失败后继续进行-如果不分析日志,则哪个条件失败的可能性将不那么明显。
答案 1 :(得分:1)
如果您要滥用“ diff / debug-infos”的断言,则可以捕获AssertionError
。例如:
def a = 42
def b = 666
try {
assert a==b
}
catch (AssertionError e) {
println e.message
}
print "the end"
// assert a==b
// || |
// || 666
// |false
// 42
// the end