Я пытаюсь проверить мой метод addPerson () в моем контроллере, но когда я выполняю тест, у меня есть статус 200 с пустым телом в MockHttpServletResponse. Я хотел бы проверить реакцию тела с помощью jsonPath из MockMvcResultMatchers, но я не могу сделать это, пока тело пустое.
вот мой тест
@WebMvcTest(PersonController.class)
@ExtendWith(SpringExtension.class)
public class PersonControllerTest {
@Autowired
private MockMvc mvc;
@Autowired
private Model model;
@MockBean
private PersonService service;
@Test
public void addPersonTest() throws Exception {
this.mvc.perform(post("/person/add")
.contentType(MediaType.APPLICATION_JSON).content("{\"firstName\": \"Test\",\"lastName\": \"\",\"address\": \"\",\"city\": \"\",\"zip\": \"\",\"phone\": \"\",\"email\": \"\"}"))
.andDo(MockMvcResultHandlers.print())
.andExpect(status().isOk());
}
вот мой контроллер с Метод addPerson ()
@RequestMapping("/person")
@RestController
public class PersonController {
@Autowired
Model model;
private static final Logger logger = LogManager.getRootLogger();
@Autowired
private PersonService personService;
@GetMapping("/")
public List<Person> allPerson() {
return personService.all();
}
@PostMapping("/add")
public List<Person> addPerson(@RequestBody Person person) {
List<Person> listPerson = this.personService.add(person);
logger.info("Request = @RequestBody = {}", person);
logger.info("Response {}", listPerson);
return listPerson;
}
и вот служба
@Service
public class PersonService {
@Autowired
private Model model;
public PersonService(Model model2) {
this.model = model2;
}
public List<Person> add(Person person) {
List<Person> listPersons = model.getPersons();
listPersons.add(person);
return listPersons;
}
спасибо за вашу помощь