【发布时间】:2018-10-24 10:44:24
【问题描述】:
我的控制器
@RequestMapping(value="/login", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public User login(@RequestBody User user){
User u = userService.validateUser(user);
if(u != null){
return u;
}
return null;
}
这是我的控制器测试用例
@Test
public void testUserController() throws Exception {
User u = new User();
u.setEmail("12a@gm.com");
u.setPassword("00000");
Gson gson = new Gson();
String data = gson.toJson(u);
when(userService.validateUser(u)).thenReturn(new User());
String response = mockMvc.perform(post("/login").contentType(MediaType.APPLICATION_JSON).content(data)).andExpect(status().isOk()).andReturn().getResponse().getContentAsString();
assertTrue(response.equals("hi"));
}
我正在将 User 对象转换为字符串并将其发布到控制器方法。我正在尝试模拟 userService.validateUser() 将返回新的空用户对象的服务方法。由于发布到服务方法的对象与控制器接收的对象不同,因此服务返回 null。如何让服务方法返回空的用户对象?
【问题讨论】:
标签: unit-testing spring-mvc junit mockito