저는 스프링 부트, 스프링 통합, gradle 프로젝트를 작업 중입니다. 그리고 저는 비누 서비스를 조롱하기 위해 junit과 Mockito를 사용하고 있습니다. 그리고 기본적으로 나는이 세 가지 수업을 내 응용 프로그램에 사용합니다. Junit 비누 서비스 조롱을위한 클래스.mockito를 사용하여 객체를 조롱 할 때 null 포인터 예외가 발생합니다.
@Before
public void setup() {
gw=Mockito.mock(ProjectGateway.class);
pc=new ProjectController();
pc.setGateWay(gw);
}
@Test
public void testGetProject() throws Exception {
GetAuthorizedWebSendTransferProjects mockRequest=new GetAuthorizedWebSendTransferProjects();
GetAuthorizedWebSendTransferProjectsResponse mockResponse=getMockResponse();
when(gw.getResponse(mockRequest)).thenReturn(mockResponse);
List<Project> projects=pc.getProject();
assertEquals(1,projects.size());
}`
및 soap 서비스를 호출하는 인터페이스.
`public interface ProjectGateway {
public GetAuthorizedWebSendTransferProjectsResponse getResponse(
GetAuthorizedWebSendTransferProjects request);
} '
내가 단위 테스트를 할 필요가되는 방법.
@RequestMapping(value = "/projects", method = RequestMethod.GET, produces = "application/json")
public @ResponseBody List<Project> getProject() {
GetAuthorizedWebSendTransferProjects request = new GetAuthorizedWebSendTransferProjects();
GetAuthorizedWebSendTransferProjectsResponse response = gw
.getResponse(request);
JAXBElement<ArrayOfProjectContainer> arr = response
.getGetAuthorizedWebSendTransferProjectsResult();
ArrayOfProjectContainer arr1 = arr.getValue();
List<ProjectContainer> arr2 = arr1.getProjectContainer();
List<Project> projects = getPopulatedProjectList(arr2);
return projects;
}
그러나 "List projects = pc.getProject();"에서 nullpointerexception이 발생합니다. 시험 방법의 아무도이 문제에서 나를 도울 수 없습니까? 미리 감사드립니다.
는 스택 추적을 제공합니다. 디버깅 해 봤어? 'pc'는 null인가,'getProject' 내의 NPE입니까? –
NPE가 발생한 지점에 대한 오해의 소지가있는 진술에 대해 -1 점을 뽑습니다. – JimmyB