Junit会在每次测试方法调用时重新初始化类吗?
当我运行以下代码时,两个测试用例都变为现实:
import static junit.framework.Assert.assertEquals;import org.junit.Test;
public class MyTest{
private int count;
@Before
public void before(){
count=1;
}
@Test
public void test1(){
count++;
assertEquals(2, count);
}
@Test
public void test2(){
count++;
assertEquals(2, count);
}
}
- test1-成功
- test2-失败(按预期该计数将变为3)
- test1-成功
- test2-成功
为什么junit reinitializing class/variable
与每个测试方法都调用。它是junit中的错误或有意提供。
回答:
回答:
对于每种测试方法,将创建Junit的行为的 新实例MyTest
。
因此,在您的情况下,这两种方法的变量count
都将具有value 1
,因此这两种测试方法的值都count++
将是2
,因此测试用例将通过。
public class MyTest{ public MyTest(){
// called n times
System.out.println("Constructor called for MyTest");
}
@Before //called n times
public void setUp(){
System.out.println("Before called for MyTest");
}
//n test methods
}
如果您使用2种测试方法执行上述代码:
输出将是:
Constructor called for MyTestBefore called for MyTest
//test execution
Constructor called for MyTest
Before called for MyTest
以上是 Junit会在每次测试方法调用时重新初始化类吗? 的全部内容, 来源链接: utcz.com/qa/405381.html