У меня есть класс, который выглядит следующим образом:
class Service {
private final Logger lgr = LoggerFactory.getLogger(Service.class);
public void doService() {
lgr.info("Do Service");
}
}
public class Controller {
private final Logger lgr = LoggerFactory.getLogger(Controller.class);
@Autowired
private Service service;
protected void doSomething() {
//do something
lgr.info("LOG something"); // lgr line
// do something else
}
}
И соответствующий тестовый класс, который выглядит следующим образом:
@RunWith(PowerMockRunner.class)
@PrepareForTest({ControllerTest.class, LoggerFactory.class})
public class ControllerTest {
private Controller controller;
@Mock
private Service service;
@Before
public void init() {
controller = Mockito.mock(Controller.class, Mockito.CALLS_REAL_METHODS);
}
@Test
public void testDoSomething() {
controller.doSomething(); // calling doSomething method of Controller class
// some other statements
}
}
Здесь, когда вызов переходит к doSomething () метод, в строке строка lgr , объект lgr имеет значение null, из-за чего мой модульный тест не выполняется с NullPointerException.
Может кто-нибудь, пожалуйста, помогите мне это исправить?