Тестовый метод POST, который возвращает ResponseEntity<> в SpringJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Тестовый метод POST, который возвращает ResponseEntity<> в Spring

Сообщение Anonymous »

Я пытаюсь протестировать свой метод POST, который возвращает ResponseEntity в классе обслуживания:

Код: Выделить всё

public ResponseEntity addCustomer(Customer customer) {
[validation etc...]
return new ResponseEntity(repository.save(customer), HttpStatus.OK);
}
Что я делаю:

Код: Выделить всё

    @Test
public void addCustomer() throws Exception {
String json = "{" +
"\"name\": \"Test Name\"," +
"\"email\": \"test@email.com\"" +
"}";

Customer customer = new Customer("Test Name", "test@email.com");

when(service.addCustomer(customer))
.thenReturn(new ResponseEntity(customer, HttpStatus.OK));

this.mockMvc.perform(post(CustomerController.URI)
.contentType(MediaType.APPLICATION_JSON)
.content(json)
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(jsonPath("$.id").exists())
.andExpect(jsonPath("$.name", is("Test Name")))
.andExpect(jsonPath("$.email", is("test@email.com")))
.andExpect(jsonPath("$.*", hasSize(3)))
.andDo(print());
}
Когда я запускаю тест, я получаю:

Код: Выделить всё

java.lang.AssertionError: No value at JSON path "$.id"
и Status = 200. Насколько я понимаю, Mockito не возвращает объект. Другие методы, такие как GET, работают отлично, но они возвращают объект, а не ResponseEntity. Что я делаю не так и как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/494 ... -in-spring
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»