Мое понимание JMockit заключается в том, что он заменит все экземпляры смоделированного объекта на макет (если вы не скажете иначе).
Следовательно, я озадачен тем, что получаю NPE после создания экземпляра объекта, который пытаюсь издеваться.
Цель теста не состоит в том, чтобы исследовать объект, вызывающий NPE, но мне нужно его смоделировать, чтобы выполнить тест, поскольку он выполняет некоторые действия с базой данных для проверки некоторого ввода.
Мой тестируемый код похож на это (не копируйте макароны, так как это рабочий код, но, тем не менее, должен подчеркнуть проблему):
public class ClassToTest{
public execute(){
MyDependency myDep = getDependency();
myDep.doSomething(); //I get a NPE here, implying getDependency returned null
}
protected MyDependency getDependency(){
return new MyDependency("an Arg", "another Arg");
}
}
Мой метод испытаний:
@Test
public void testCreateHorseDogMeetingByCodeDataProviderTruncated()
throws IllegalArgumentException, SQLException,
IllegalCountryLocationCombo, MEPException {
// Arrange
ClassToTest myClass = new ClassToTest();
new NonStrictExpectations() {
MyDependency mockDep;
{
//Set up my expectations, not related to MyDependency
}
};
// Act
myClass.execute();
// Assert
new Verifications() {
{
//some verification stuff
}
};
}
Может кто-нибудь помочь мне решить эту проблему NPE, чтобы я мог закончить свой тест?