我正在寻找遵循(简化)方案的最佳做法:
@Test
public void someTest() {
for(String someText : someTexts) {
Assert.true(checkForValidity(someText));
}
}
这个测试迭代了成千上万的文本,在这种情况下,我不希望每次失败都停止它。我希望缓冲错误,并在最后一个错误的情况下失败。 JUnit有没有为我的目标做些准备?
答案 0 :(得分:8)
首先,实现这一点并不是正确的方法。 JUnit通过使用Parametrized
测试运行器定义输入/输出集合来允许parametrizing测试。这样做可以确保每个测试用例成为一个独特的实例,使测试报告清楚地说明哪些样本通过,哪些样本失败。
如果你仍然坚持按照自己的方式去做,你应该看看AssertJ的Soft Assertions,它允许“吞咽”个别断言失败,积累它们并且只在测试结束后报告。链接的文档部分使用了一个很好的例子,绝对值得一读。