0
JUnit 4 및 mockito를 사용하여 단위 테스트를 생성합니다. 클래스 멤버 중 하나에 모의 인스턴스를 제공하려고 할 때 문제가 발생했습니다.주입 된 클래스 멤버에게 모의 인스턴스를 제공하는 방법
여기에 클래스를 테스트 할 수있다 : 나는 configService.send(feedbackData)
를 사용하려고하면
public class FeedbackServlet extends SlingAllMethodsServlet {
@Reference
private ConfigService configService;
@Override
protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) {
FeedbackData feedbackData = extractFeedbackData(request.getRequestParameterMap());
try {
boolean isEmailSent = configService.send(feedbackData);
} catch (Exception e) {
...
}
}
private FeedbackData extractFeedbackData(RequestParameterMap data) {
String firstName = data.getValue(ParamKey.FIRST_NAME.toString()).getString();
String email = data.getValue(ParamKey.EMAIL.toString()).getString();
String message = data.getValue(ParamKey.MESSAGE.toString()).getString();
String contactNumber = data.getValue(ParamKey.CONTACT_NUMBER.toString()).getString();
return new FeedbackData(firstName, email, message, contactNumber);
}
}
이 테스트는 NullPointerException
을 생산하고 있습니다. 지금은 테스트 클래스에 누락 된 값을 주입하려고 :
public class FeedbackServletTest extends Mockito {
@InjectMocks
private ConfigService configService = mock(ConfigService.class);
@Test
public void testDoPost() throws Exception {
...
when(configService.send(new FeedbackData("Nikola", "[email protected]", "Our virtues and our failings are inseparable, like force and matter." +
"When they separate, man is no more.", "09991234567"))).thenCallRealMethod();
...
}
}
내가 테스트를 다시 실행하려하지만 NPE는 여전히 존재한다.
어떻게 제대로 수행 할 수 있습니까?