我在JUnit中进行了以下测试:
@Test
public void getLargestCustId_should_return_five(){
Assert.assertEquals(5, project.getLargestCustId());
}
但是,它会抛出NullPointerException,因为项目对象未初始化。尽管事实上我已经使用@Before注释创建了一个init方法:
@Before
public void init(){
project = new Project();
personOne = new Person(-3);
personTwo = new Person(1);
personThree = new Person(5);
project.addPerson(personOne);
project.addPerson(personTwo);
project.addPerson(personThree);
}
当我将整个代码移动到getLargestCustId_should_return_five()时,它可以工作,并且Project-class被正确初始化。
我认为@ Before-annotation确保自动调用init()方法?没有我必须在其他方法中调用this.init()。它是否正确?或者我必须在类运行时显式调用该方法?
答案 0 :(得分:-1)
来自JavaDoc
public void
方法@Before
的@Before
方法将在当前类的方法之前运行,