Пожалуйста, не отмечайте его как дубликат, я не могу решить эту проблему. Я пишу модульное тестирование, используя Mockito . При выполнении теста я получаю NullPointerException
на @Autowired bean
из MainTemplate class
.
Код:
public abstract class Template{
abstract public boolean isEven(String input);
private String getName(String initial){
return "INIT"+initial;
}
final public void run(String input){
isEven(input);
getName(input);
}
}
Реализация шаблона:
public class MainTemplate extends Template{
@Autowired
private UserUtil userUtil;
@Override
public boolean isEven(String input){
return userUtil.getResult(input); //GETTING NullPointerException here..
}
}
Конфигурация компонента:
@Configuration
public class BeanConfiguration{
@Bean
public Template getBean(){
return new MainTemplate();
}
}
@Service
public class Executor{
@Autowired
private BeanConfiguration beanConfig;
public void execute(){
beanConfig.getBean().run("sample input");
}
}
Класс модульного тестирования:
@SpringBootTest
@RunWith(MockitoJUnitRunner.class)
public class MainTemplateTest{
@InjectMocks
private MainTemplate mainTemplate;
@Mock
private UserUtil userUtil;
@Test
public void isEvenTest(){
Mockito.when(userUtil.getResult(anyString())).thenReturn(true);
mainTemplate.isEven("input string");
}
}
Я получаю NullPointerException при выполнении вышеуказанного теста. Получение NullPointerException для:
@Override
public boolean isEven(String input){
return userUtil.getResult(input); //GETTING NullPointerException, while calling from mock method
}