2014-02-06 4 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 не работает должным образом

ответ

5

создал частное поле в тестовом классе за пределами испытательной установки, т.е.

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

Затем инстанцирует землю в вашем before()

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

Это, кажется, сделать трюк, спасибо! – user3281235

+0

@ user3281235 примите ответ, затем – aasu

+0

Это не сделало трюк для меня! Я столкнулся с одной и той же проблемой! – shahakshay94

Смежные вопросы