如何正确中止不正确的测试用例?

时间:2017-11-09 01:11:21

标签: java unit-testing testing junit automated-tests

如果与fail()条件一起使用,我知道您有if标记测试在特定条件下失败。但是,我的理解是fail()用于标记测试假设的失败,而不是测试本身的代码。例如,假设我有expectedFileactualFile,但如果我们没有expectedFile,我想中止测试用例。我可以:

if(expectedFile == null){
    fail()
}

但是日志记录意味着我们正在测试它的失败,而不是测试用例本身。我想知道是否有一种单独的方式来表明失败来自测试用例本身,而不是来自我们正在测试的单元。

2 个答案:

答案 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

这很容易理解......