就像标题所说,即使我已经在@Before方法中将它们作为一次性设置启动,我仍然会在测试用例中获得无效的字段.唯一的例外是第一个运行的测试有效.
我能够使用以下代码复制行为:
public class NetworkTest extends TestCase{
private static Boolean oneTimeSetUpDone = false;
private Client client;
@Before
public void setUp(){
if(!oneTimeSetUpDone){
client = new Client();
oneTimeSetUpDone = true;
}
}
@Test
public void testConnection(){
System.out.println(client);
assertFalse(true);
}
@Test
public void testMultiConnection(){
System.out.println(client);
assertFalse(true);
}
Run Code Online (Sandbox Code Playgroud)
我在这里遗漏了什么或为什么在第一次测试运行后字段会被清除?
@Before在每次测试之前运行- 您应该考虑@Test在测试类的新实例中运行的每一个,并@Before设置该实例(专业提示:查看类' .hashCode()- 在每个测试方法中它是不同的).
您可以@BeforeClass在您的情况下使用.
干杯,
| 归档时间: |
|
| 查看次数: |
2774 次 |
| 最近记录: |