Saya memiliki pengontrol RESTful yang sangat sederhana yang menghasilkan json dan saya ingin menguji apakah itu berfungsi dengan baik. Saya dapat dengan mudah menguji metode ini ketika id pengguna ada, tidak ada masalah dengan itu. Saya ingin memvalidasi bahwa IllegalArgumentException dilemparkan ketika id yang diberikan tidak ada. Apakah ada cara untuk melakukan itu?
Dalam aplikasi, ketika terjadi kesalahan pernyataan, respons diarahkan ke halaman kesalahan umum yang menampilkan pesan umum. Jika saya menggunakan respon(withStatus(HttpStatus.NOT_FOUND) Saya tidak memvalidasi pengecualian atau pesan saya. Adakah yang bisa membantu saya?
Ini adalah metode yang ingin saya uji:
@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);
}
Ini adalah tes dengan id yang valid:
@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);
}
Salam, Daniela