Junit @Before不能正常工作

时间:2014-02-06 20:05:46

标签: java junit

@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?

的重点是什么

3 个答案:

答案 0 :(得分:6)

我在导入而不是org.junit.Test时遇到了这个问题 org.junit.jupiter.api.Test

答案 1 :(得分:5)

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

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

然后在before()

中实例化地面
@Before
public void before(){ground = new Ground(100,100);}

答案 2 :(得分:1)

同意@ANU JOHN, 以下进口商品不匹配:

import org.junit.Before;
import org.junit.jupiter.api.Test;

将第二个更改为org.junit.Test;为我修复它。