Чтобы проверить код статуса ответа, вам нужно будет написать более сложный тест, используя WebTestClient. Примерно так:
Service service = Mockito.mock(Service.class);
WebTestClient client = WebTestClient.bindToController(new TestController(service)).build();
Теперь вы можете протестировать:
- сериализацию в JSON или другие типы
- тип содержимого
- код ответа
- путь к вашему методу
- вызванный метод (POST, GET, DELETE, et c)
Модульные тесты не охватывают указанные выше темы.
// init mocks
when(service.getPersons(anyInt())).thenReturn(Mono.just(person));
// execute rest resource
client.get() // invoked method
.uri("/persons/1") // requested path
.accept(MediaType.APPLICATION_JSON)
.exchange()
.expectStatus().isOk() // response code
.expectHeader().contentType(MediaType.APPLICATION_JSON)
.expectBody()
.jsonPath("$.firstName").isEqualTo(person.getFirstName())
.jsonPath("$.lastName").isEqualTo(person.getLastName())
// verify you have called your expected methods
verify(service).getPerson(1);
Вы можете найти больше примеров здесь . Вышеупомянутый тест также не требует контекста Spring, может работать с макетными службами.