我试图测试下面的方法,但得到的是一个错误信息
ParameterResolutionException.没有为参数注册ParameterResolver。没有为参数注册ParameterResolver。
我的 controller
是以下几点。
@GetMapping("/get/{id}")
public User getUserById(@PathVariable int id) {
return userService.getUserById(id);
}
而我的测试是这样的
@Test
void getUserById(Integer id) throws Exception {
User user1 = new User(1, "FirstName", "LastName", "Address",
"1234566", "[email protected]");
when(userService.getUserById(1)).thenReturn(user1);
mockMvc.perform(MockMvcRequestBuilders.get("/get/{id}", "1"))
.andExpect(status().isOk());
assertEquals(userController.getUserById(1), user1);
}
我如何解决这个异常,使测试通过?
像这样写你的mockMVC。
val response = mockMvc.perform(MockMvcRequestBuilders.get("/get/1"))
.andExpect(status().isOk())
然后用响应断言,比如...
response.andExpect(jsonPath("$.your.object.path", is("your_expected_output")));