【发布时间】:2015-03-31 18:12:36
【问题描述】:
背景
我正在使用 Selenium/Junit 测试环境,并且我想实现一个类来执行“软断言”:这意味着我希望它记录断言是否通过,但实际上在测试用例之前不会失败,直到我明确告诉它验证断言。这样我可以检查一个页面上的多个字段并记录所有不匹配的字段。
当前代码
我的“验证”方法显示为这样(assertTrue/assertFalse 存在类似的方法):
public static void verifyEquals(Object expected, Object actual) {
try {
assertEquals(expected, actual);
} catch (Throwable e) {
verificationFailuresList.add(e);
}
}
验证完所有字段后,我调用以下方法:
public static void checkAllPassed() {
if (!verificationFailuresList.isEmpty()) {
for (Throwable failureThrowable : verificationFailuresList) {
log.error("Verification failure:" + failureThrowable.getMessage(), failureThrowable);
// assertTrue(false);
}
}
}
问题
目前,我目前只是使用assertTrue(false) 作为一种快速失败测试用例的方法;但是,这会使日志因无意义的故障而变得混乱,并将真正的问题推得更远。有没有一种更简洁的方法来故意使 JUnit 测试用例失败?如果没有,是否有更好的解决方案来实现软断言?我知道article 的实现非常好,但据我所知,JUnit 不等同于 IInvokedMethodListener 类
【问题讨论】:
标签: java unit-testing selenium junit