Я пишу для написания модульного теста для моего RestController (POST) и получаю исключение NullPointerException в строке mvc.perform (...).
Вот мой RestController:
@RestController
@EnableAutoConfiguration
public class MyController {
@Autowired
private Service1 service;
@Autowired
RestTemplate restTemplate;
@RequestMapping(value = "/logError", method = RequestMethod.POST, produces = {MediaType.APPLICATION_JSON_VALUE})
@ResponseBody
public ResponseEntity ErrorHandlor(@RequestBody JSONStructure jsonStructure) throws Exception{
service.getDocument(jsonStructure.getID(), jsonStructure.getLog());
return new ResponseEntity(HttpStatus.OK);
}
}
А вот мой тестовый класс:
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = {MyController.class,
Service1.class, AppConfig.class})
@WebMvcTest(MyController.class)
public class MyControllerTest {
private MockMvc mockMvc;
@MockBean
private RestTemplate restTemplate;
MyController service = new MyController();
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
this.mockMvc = MockMvcBuilders.standaloneSetup(service).build();
}
@Test
public void testController() throws Exception{
ObjectMapper mapper = new ObjectMapper();
String url = "http://localhost:8080/logError";
JSONStructure structure = new JSONStructure();
structure.setNumber("num");
structure.setID("id");
structure.setLog("log");
String json = mapper.writeValueAsString(structure)
this.mockMvc.perform
(MockMvcRequestBuilders.post("http://localhost:8080/logError")
.contentType(MediaType.APPLICATION_JSON)
.content(json))
.andExpect(MockMvcResultMatchers.status().isCreated())
.andReturn();
}
}
Я получаю NPE в строке, содержащей this.mockMvc.perform (...).
Кто-нибудь может указать, в чем может быть проблема?