我编写了这个控制器方法:
@RequestMapping("/submitFormAdd")
public ModelAndView submitFormAdd(
Model model,
@ModelAttribute("myCandidate") @Valid Candidate myCandidate,
BindingResult result,
RedirectAttributes redirectAttributes) {
if (result.hasErrors()) {
return new ModelAndView("candidateDetailsAdd");
}
myCandidate.setDate(new Date());
candidateService.add(myCandidate);
redirectAttributes.addAttribute("message", "added Correctly at "+ new Date() );
redirectAttributes.addAttribute("id", myCandidate.getId());
ModelAndView modelAndView = new ModelAndView(
"redirect:loadCandidateById");
return modelAndView;
}
更新
myCandidate实例化如下:
@ModelAttribute(value = "myCandidate")
public Candidate loadCandidateById(
@RequestParam(required = false) Integer candidateId) {
if (candidateId != null)
return candidateService.findById(candidateId);
return null;
}
怎样测试这个方法才能获得候选信息?
我用MockMvc。
发布于 2013-10-03 13:53:29
您无法具体测试该方法是否将接收Candidate
参数。您的选项是发送糟糕的请求数据,从而使Spring无法正确实例化它并返回一个400错误(但由于其他原因可能会发生这种情况)。或者发送正确的数据并收到你通常期望的结果。
请注意,您不应该测试Spring功能。当您使用第三方框架时,您假设它已经过正确的测试,特别是像Spring这样的测试。
https://stackoverflow.com/questions/19160391
复制相似问题