У меня есть этот метод для создания пользователя
@PostMapping()
public ResponseEntity create(@Valid @RequestBody final User user) {
if (userRepository
.findById(user.getId())
.isPresent()) {
throw new UserAlreadyExistsException(user.getId());
}
userRepository.save(user);
return ResponseEntity
.ok()
.build();
}
и я пытаюсь проверить это с помощью mockMvc.
@Test
public void createException() throws Exception {
final User foo = new User(1, "foo");
given(userRepository.findById(foo.findById())).willReturn(Optional.of(foo));
given(userRepository.save(foo)).willReturn(foo);
mvc
.perform(post("/add")
.contentType(MediaType.APPLICATION_JSON)
.content(asJsonString(foo)))
.andExpect(status().is5xxServerError())
}
Я ожидаю исключение UserAlreadyExistsException, но вместо этого я получил исключение ниже и тест не пройден.
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is UserAlreadyExistsException: User with id 1 already exists