我一直在尝试使用mockito和junit运行以下测试,并且我一直在获取“java.lang.NullPointerException:名称不能为空” 任何人都可以告诉我为什么会这样呢?Mockito&Junit空指针异常:名称不能为空
在调试时,我发现,当测试执行isStopValid(String)方法下面的语句则抛出该异常:
FacilityValidationUtil facUtil =新FacilityValidationUtil();
@RunWith(MockitoJUnitRunner.class)
public class MyFormTest{
@InjectMocks MyForm form = new MyForm();
@Mock FacilityValidationUtil facUtil;
@Test
public void testIsStopValid() throws FinderException{
when(facUtil.isFacilityValid("")).thenReturn(false);
form.setOrigin("");
assertEquals(false, form.isStopValid(form.getOrigin()));
}
}
与方法类待测试:
public class MyForm{
FacilityValidationUtil facUtil = new FacilityValidationUtil();
public boolean isStopValid(String stop){
try {
return facUtil.isFacilityValid(stop);
} catch (FinderException e) {
log.error("Error finding the stop. "+e.getCause());
return false;
}
}
}
public class FacilityValidationUtil{
private FacilityDAO facilityDao = new HibernateFacilityDAO();
public boolean isFacilityValid(String facility) throws FinderException{
boolean test;
FacilityImpl facilityImpl = facilityDao.findFacilityByNassCode(facility);
test = (facilityImpl==null)?false : true;
return test;
}
}
public class HibernateFacilityDAO extends HibernateAbstractDeltaDAO implements FacilityDAO {
public HibernateFacilityDAO() {
super(false);
}
}
'testIsStopValid()'中的哪一行导致异常? – Magnilex 2013-03-11 17:41:13
@MagnusTengdahl assertEquals(false,form.isStopValid(form.getOrigin()));谢谢。 – Susie 2013-03-11 17:42:26