目前,我正在阅读“JUnit in action”一书.在本书中,我发现了以下文字:
JUnit creates a new instance of the test class before invoking each
@Test method. This helps provide independence between test methods and
avoids unintentional side effects in the test code. Because each test
method runs on a new test class instance, we can’t reuse instance
variable values across test methods.
现在我认为这种方法没有多大意义:
例如:
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);
}
}
对于测试类CalculatorTest,没有任何好处.
好吧,让我们去关注另一个例子:
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,我找到了一种方法,可以为许多测试方法使用相同的变量计数…
那么,如何看待书中描述的方法的真正好处呢?