如果与fail()
条件一起使用,我知道您有if
标记测试在特定条件下失败。但是,我的理解是fail()
用于标记测试假设的失败,而不是测试本身的代码。例如,假设我有expectedFile
和actualFile
,但如果我们没有expectedFile
,我想中止测试用例。我可以:
if(expectedFile == null){
fail()
}
但是日志记录意味着我们正在测试它的失败,而不是测试用例本身。我想知道是否有一种单独的方式来表明失败来自测试用例本身,而不是来自我们正在测试的单元。
答案 0 :(得分:2)
您可以使用Assume.assumeNotNull(...)
方法为您抛出AssumptionViolatedException
。类似的东西:
import static org.junit.Assume.assumeNotNull;
// later in the code
void someMethod() {
assumeNotNull(expectedFile, actualFile);
// Rest of code goes here
}
替代方案可能是使用Objects.requireNonNull(...)
,如果参数为NullPointerException
,则会抛出null
。
答案 1 :(得分:0)
我想知道为什么你不能简单地使用assertEquals()
,因为如果actualFile
为空,则失败并显示错误消息:
expected "the expected file name" but was NULL
这很容易理解......