Сервисный вызов в контроллер в тесте не обновляет поле правильно - PullRequest
0 голосов
/ 10 июля 2020

Я пробую несколько тестов на моем UserController для обновления поля электронной почты, например:

@Test
public void testUpdateUserNominal() throws Exception {

    savedUser.setEmail(EMAIL_2);
    UserDTORequest updatedUserDTORequest = modelMapper.map(savedUser, UserDTORequest.class);
    String jsonMessage = gson.toJson(updatedUserDTORequest);

    mvc.perform(put(USER_ROUTE)
            .contentType(APPLICATION_JSON)
            .accept(APPLICATION_JSON)
            .content(jsonMessage))
            .andExpect(status().isOk())
            .andReturn();

    assertThat(userService.findAll().size()).isEqualTo(1);
    assertThat(userService.findAll().get(0).getEmail()).isEqualTo(EMAIL_2);


}

Вот код на моем контроллере:

@Override
public ResponseEntity<UserDTOResponse> update(UserDTORequest userDTORequest) throws ParseException {
    Optional<User> optUser = userService.findByUri(userDTORequest.getUri());
    if(optUser.isEmpty()){
        return ResponseEntity
                .notFound()
                .build();
    }
    User user = convertToEntity(userDTORequest);
    User userUpdated = userService.save(user);
    UserDTOResponse userDTOResponse = convertToDto(userUpdated);

    return ResponseEntity
            .ok(userDTOResponse);
}

Ответ от макета Mvc правильный: новый набор адресов электронной почты является хорошим.

Но по второму assertThat:

assertThat(userService.findAll().get(0).getEmail()).isEqualTo(EMAIL_2);

Электронная почта не подходит, электронная почта не обновляется.

Что делаю не так?

Спасибо :)

...