2014-02-06 187 views
2
@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?Junit @Before not working properly

回答

5

建立在你的測試類的私人領域的測試設置之外的點,即

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

然後在實例地面您before()

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

這似乎做招數,謝謝! – user3281235

+0

@ user3281235請接受答案然後 – aasu

+0

這沒有爲我做的伎倆!我面對完全相同的問題! – shahakshay94