The code to unit test retrieveTodo is as follows:
@Test public void retrieveTodo() throws Exception { Todo mockTodo = new Todo(1, "Jack", "Learn Spring MVC", new Date(), false); when(service.retrieveTodo(anyInt())).thenReturn(mockTodo); MvcResult result = mvc.perform( MockMvcRequestBuilders.get("/users/Jack/todos/1") .accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()).andReturn(); String expected = "{id:1,user:Jack,desc:\"Learn Spring MVC\",done:false}"; JSONAssert.assertEquals(expected, result.getResponse().getContentAsString(), false); }
A few important things to note are as follows:
- when(service.retrieveTodo(anyInt())).thenReturn(mockTodo): We are mocking the retrieveTodo service method to return the mock ...