У меня есть очень простой контроллер RESTful, который создает json, и я хочу проверить, работает ли он нормально. Я могу легко протестировать метод, когда существует идентификатор пользователя, с этим проблем нет. Я хотел бы проверить, что IllegalArgumentException выдается, когда данный идентификатор не существует. Есть ли способ сделать это?
В приложении при возникновении ошибки утверждения ответ перенаправляется на общую страницу ошибки, которая отображает общее сообщение. Если я использую response(withStatus(HttpStatus.NOT_FOUND)), я не проверяю ни исключение, ни свое сообщение. Кто-нибудь может мне помочь?
Это метод, который я хочу проверить:
@Transactional (readOnly = true)
@RequestMapping(method=RequestMethod.GET, value="/json/user/{id}", headers="Accept=application/json, text/html")
public @ResponseBody UserData getUserJson(@PathVariable Long id)
{
User user = this.userService.findUserById(id);
Assert.notNull(user , "User does not exist with the given id: " + id);
return new UserData (user);
}
Это тест с действительным идентификатором:
@Test
public void testRestUserJson() {
mockServer.expect(requestTo(JSON_URL + USER)).andExpect(method(HttpMethod.GET))
.andRespond(withSuccess(JSON_RESPONSE, MediaType.APPLICATION_JSON));
UserData userData = restClientTemplate.getForObject(JSON_URL + USER, UserData.class);
AssertResponseContent(userData , expectedData);
mockServer.verify();
EasyMock.verify(user);
}
С уважением, Даниэла