我正在寻找以下(简化)场景的最佳实践:
@Test
public void someTest() {
for(String someText : someTexts) {
Assert.true(checkForValidity(someText));
}
}
Run Code Online (Sandbox Code Playgroud)
这个测试迭代了数千个文本,在这种情况下,我不希望每次失败都停止它.我希望缓冲错误,并在最后一个错误的情况下失败.JUnit有没有为我的目标做些准备?
首先,实现这一点并不是真正的正确方法.JUnit允许通过使用测试运行器定义输入/输出的集合来参数化测试Parametrized.这样做可以确保每个测试用例成为一个独特的实例,使测试报告清楚地说明哪些样本通过,哪些样本失败.
如果您仍然坚持按照自己的方式进行操作,那么您应该查看AssertJ的Soft Assertions,它允许"吞咽"单个断言失败,累积它们并且仅在测试完成后报告.链接的文档部分使用了一个很好的例子,绝对值得一读.
| 归档时间: |
|
| 查看次数: |
2522 次 |
| 最近记录: |