Agn*_*sco 3 spring spring-test mockito spring-test-mvc
我有一个api电话:
@RequestMapping(value = "/course", method = RequestMethod.GET)
ResponseEntity<Object> getCourse(HttpServletRequest request, HttpServletResponse response) throwsException {
User user = userDao.getByUsername(request.getRemoteUser());
}
Run Code Online (Sandbox Code Playgroud)
当我从测试类中调用它时,我得到的用户为null,如:
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
Mockito.when(request.getRemoteUser()).thenReturn("test1");
MvcResult result = mockMvc.perform( get( "/course")
.contentType(MediaType.APPLICATION_JSON)
.andExpect( status().isOk() )
.andExpect( content().contentType( "application/json;charset=UTF-8" ) )
.andReturn();
Run Code Online (Sandbox Code Playgroud)
当我调试请求对象时,我可以看到remoteUser=null.那么如何将值传递给远程用户呢?
Ali*_*ani 10
您可以使用RequestPostProcessor以便以MockHttpServletRequest任何方式修改.在你的情况下:
mockMvc.perform(get("/course").with(request -> {
request.setRemoteUser("USER");
return request;
})...
Run Code Online (Sandbox Code Playgroud)
如果您遇到旧版本的Java:
mockMvc.perform(get("/course").with(new RequestPostProcessor() {
@Override
public MockHttpServletRequest postProcessRequest(MockHttpServletRequest request) {
request.setRemoteUser("USER");
return request;
}
})...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4530 次 |
| 最近记录: |