簡體   English   中英

如何在控制器模擬中使用MockMvc

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM