gpt4 book ai didi

java - 为什么我的 JUnit 错误收集器没有报告错误?

转载 作者:行者123 更新时间:2023-12-02 04:31:11 25 4
gpt4 key购买 nike

我正在尝试使用 JUnit 错误收集器报告错误。尽管我的断言失败,但 JUnit 中未报告错误。但我在控制台中收到“错误”消息。

@Rule
public ErrorCollector errcol = new ErrorCollector();

@Then("^Business alert message on the screen$")
public void Business_alert_message_on_the_screen(Result_Update) throws Throwable {
if (userType.equals("Admin")) {
try {
Assert.assertEquals("Update button is not present for the admin user", true, Result_Update);

} catch (Throwable t) {
errcol.addError(t);
System.out.println("Error");
}
}
}

最佳答案

tl;dr : Make sure your test class doesn't extend TestCase.

当我将 JUnit 4 与 IntelliJ IDEA 一起使用时,我遇到了类似的问题。我天真地在对话框中选择了 TestCase 的基类,这是 JUnit 3 的默认设置,因为我认为“拥有这些方便的 this#assert* 会很好。 > 方法”(JUnit 4 的默认值为 null)。错误的代码(不起作用)如下:

public class SassCompilerTest extends TestCase {
@Rule
public ErrorCollector collector = new ErrorCollector();

@Test
public void testCompiler() throws IOException {
collector.checkThat(true, CoreMatchers.equalTo(false));
}
}

但是,在 JUnit 4 中,这导致许多功能无法运行。删除父类修复了测试:

public class SassCompilerTest {
@Rule
public ErrorCollector collector = new ErrorCollector();

@Test
public void testCompiler() throws IOException {
collector.checkThat(true, CoreMatchers.equalTo(false));
}
}

该解决方案是由comment向我建议的。 @StefanBirkner 在另一个答案中提到的 Cucumber 问题。读完后,我尝试扩展 ErrorCollector 以使 ErrorCollector#verify 公开并从 @After 方法调用它,但是 @After 方法没有被调用,这让我意识到 TestRunner(这是 IntelliJ 的默认设置)或测试本身出了问题。

关于java - 为什么我的 JUnit 错误收集器没有报告错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31443474/

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