JUnit:在调用每个@Test方法之前的新实例。有什么好处?
2022-09-01 17:15:13
目前,我正在阅读“JUnit in Action”一书。在这本书中,我发现了下面的文字:
JUnit 在调用每个@Test方法之前,会创建测试类的新实例。这有助于在测试方法之间提供独立性,并避免测试代码中无意的副作用。由于每个测试方法都在新的测试类实例上运行,因此我们无法在测试方法中重用实例变量值。
现在我不认为这种方法有什么意义:
例如:
public class CalculatorTest {
@Test
public void testAdd_1() {
Calculator calculator = new Calculator();
double result = calculator.add(1, 1);
assertEquals(2, result, 0);
}
@Test
public void testAdd_2() {
Calculator calculator = new Calculator();
double result = calculator.add(2, 2);
assertEquals(4, result, 0);
}
}
对于测试类计算器测试没有任何好处。
好吧,让我们注意另一个例子:
public class OneTest {
static byte count;
public OneTest() {
count++;
}
@Test
public void test1() {
System.out.println(count);
}
@Test
public void test2() {
System.out.println(count);
}
}
对于测试类OneTest,我找到了一种方法,可以对许多测试方法使用相同的变量计数...
那么,如何看到书中描述的方法的真正好处呢?