【发布时间】:2014-02-21 09:12:14
【问题描述】:
我正在尝试测试我的控制器映射和响应 http 状态代码。因此,我使用的是 RequestMappingHandlerAdapter 和 RequestMappingHandlerMapping。
我的控制器
@Controller
@RequestMapping(value ="/user")
public class AdminSpringController {
@Autowired
public UserAdminService userService;
private final Logger log = LoggerFactory.getLogger(AdminSpringController.class);
@RequestMapping(method = RequestMethod.GET, consumes = "application/json", produces = "application/json")
@ResponseStatus(HttpStatus.OK)
public List<User> getUsers() {
log.trace("Request to get all users.");
return userService.getUsers();
}
}
还有我的测试课:
public class AdminSpringControllerTests {
AdminSpringController cut;
private MockHttpServletRequest request;
private MockHttpServletResponse response;
private RequestMappingHandlerAdapter adapter;
private RequestMappingHandlerMapping handlerMapping;
@Test
public void testGetSc() throws Exception{
adapter = new RequestMappingHandlerAdapter();
handlerMapping = new RequestMappingHandlerMapping();
MockHttpServletRequest request = new MockHttpServletRequest();
request.setMethod("GET");
request.setRequestURI("/user");
request.addHeader("Accept", "application/json");
MockHttpServletResponse response = new MockHttpServletResponse();
Object handler = handlerMapping.getHandler(request).getHandler();
ModelAndView mav = adapter.handle(request, response, handler);
assertNotNull(mav);
}
}
但我在 Object handler = ... 行中收到 NullPointerException
我只是想测试我的映射,然后从我的响应中检查 HTTP 状态代码。这是正确的方法还是我的测试实现完全错误。对于我需要使用 EasyMock 的测试。作为下一步,我想测试响应状态代码 (response.getStatus()) 是否等于 SC_OK (200)。
感谢任何帮助:)
【问题讨论】:
标签: java spring junit controller easymock