有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java有没有一种方法可以跟踪JUnit中多断言测试用例的每个断言?

我对TDD和JUnit有些陌生,我知道我可以为我在代码中实现的方法编写测试用例

很明显,我的代码中有一些方法需要测试几个关键案例,以验证方法实现是否正常。由于一般来说,好的实践是在代码中每个方法保留一个测试方法,因此我必须为这种方法添加多个断言,如本答案中所述https://stackoverflow.com/a/762582/5715934

public void testValueOf() {
    assertEquals(1, Integer.valueOf("1").intValue());
    assertEquals(0, Integer.valueOf("0").intValue());
    assertEquals(-1, Integer.valueOf("-1").intValue());
    assertEquals(Integer.MAX_VALUE, Integer.valueOf("2147483647").intValue());
    assertEquals(Integer.MIN_VALUE, Integer.valueOf("-2147483648").intValue());
....
}

但是当我执行测试用例时,我并没有得到测试方法中每个断言的测试状态(通过/失败)。相反,即使一个断言失败,它也会显示“红色”,如果所有断言都通过,它会显示绿色

跟踪每个断言是否更容易使调试更容易?有没有任何正式的方法/工具/解决方法可以做到这一点(JUnit4)


共 (1) 个答案

  1. # 1 楼答案

    首先,对单一方法使用单一测试方法不是一个好主意,相反。在上面的代码中,每个断言实际上都应该是一个单独的测试方法。 这并不意味着在测试方法中总是有一个单一的断言,这只适用于最简单的断言。如果某个方法(例如)返回一个对象,您将有更多的断言来验证该对象是否正确

    但最重要的是,被测试的方法通常只调用一次

    了解哪个断言失败的唯一方法是查看消息/堆栈跟踪。但一般来说,如果一个测试失败了,您知道有什么地方出了问题,就打开IDE查看测试