gpt4 book ai didi

java - 方法完成后故意使 JUnit 测试失败

转载 作者:行者123 更新时间:2023-11-30 03:29:39 25 4
gpt4 key购买 nike

背景

我正在使用 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 类

最佳答案

如果您想故意使 JUnit 测试失败,您应该使用 org.junit.Assert.fail()

另一个选择是切换到 TestNG 框架,该框架的 latest version 中已经有一个 SoftAssert 类。 .

关于java - 方法完成后故意使 JUnit 测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29375544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com