@Before
public void setup(){
    Ground ground = new Ground(100, 100);
}

@Test
public void getDimX(){
    String msg = "For a newly created Ground(100, 100), ground.getDimensionX()      should return 100";
    assertEquals(100, ground.getDimensionX());
}


上面的代码返回一个NullPointerException。如果将Ground ground = new Ground(4, 4);移到getDimX()方法中,则测试运行正常。我有许多使用相同基础的测试,所以我不希望每个测试用例都做一个新的测试。另外,如果我完全摆脱了@Begin块,只保留了地面实例化,它也可以正常工作。那么@Before?的意义是什么

最佳答案

在测试设置之外的测试类中创建了一个私有字段,即

public class MyTest{
    private Ground ground;
    ...
}


然后在您的before()中实例化地面

@Before
public void before(){ground = new Ground(100,100);}

10-04 18:45