[英]How to use MockMvc with mock of controller
我有這個contoller方法:
@RequestMapping(value = "/addEvent", method = RequestMethod.POST)
public String addEvent(Model model,
@Valid @ModelAttribute("myEvent") Event event,
BindingResult result, RedirectAttributes redirectAttributes,
@RequestParam(required = true) Integer selectedEventTypeId,
@RequestParam(required = true) Integer selectedEventStatusId) {
if (result.getErrorCount() > 1 ){
return "eventDetailsAdd";
}
eventService.addEvent(event, selectedEventTypeId, selectedEventStatusId);
redirectAttributes.addAttribute("idEvent", event.getId());
redirectAttributes.addAttribute("message", "added correctly at " + new Date() );
return "redirect:eventDetails";
}
我使用ockMockMvc來模擬結果,並檢查兩個if (result.getErrorCount() > 1 )
為if (result.getErrorCount() > 1 )
我該怎么做?
使用MockMvc
,您不能。 MockMvc
是一種HTTP客戶端。 您可以使用MockMvcRequestBuilders
生成HTTP請求,並設置標頭,請求參數,正文和URL。 MockMvc
將模擬發送完整的DispatcherServlet
堆棧的請求。
如果要模擬BindingResult
參數,建議您獨立測試@Controller
類。
// in @Test
MyController controller = new MyController(/* maybe other arguments */)
// generate your mocks and declare expectations
controller.addEvent(/* mocks go here */);
// verify your mocks
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.