【发布时间】:2021-07-17 23:01:30
【问题描述】:
我最近才开始使用 Junit 测试,所以如果我的术语不正确,请原谅。据我所知,如果我们用 @test 注释方法,这些方法将成为测试方法,并且我们可以通过单击旁边的播放按钮使用 IDE(我使用 Intellij)运行它。在后台,它可能会实例化 Test 类的实例并运行选定的方法。我的问题是,在下面的示例中,如果 test1 和 test2 都使用和编辑同一 Test 类实例的相同 hello 字符串,由于 test2 在 test1 之后运行,它应该打印 hello 字符串的编辑版本?即:test2 应该打印“1”。但在这种情况下,它会打印一个空字符串。这是为什么呢?
class Test{
private String hello = "";
@Test
void test1() {
hello = hello + "1";
System.out.println(hello);
}
@Test
void test2() {
System.out.println(hello)
}
}
【问题讨论】:
-
“但显然它没有,我在运行 Test 类后只得到“1”。” .... 这个不清楚,第二句话是什么意思?您期望输出“1”,但没有得到
test2,仅在运行整个测试类时,或者您期望来自test2的输出不同于“1”,但它打印了“1”? “因为 test2 在 test1 之后运行” 不一定是真的。当您没有明确指定测试订单时,不要依赖测试订单。 Junit 运行它认为合适的测试。
标签: java unit-testing testing junit junit5