0

私はこのコントローラーメソッドを持っています:

@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";
    }

mockMvc を使用して、結果をモックし、両方のバリアントをチェックインしたいif (result.getErrorCount() > 1 )

どうすればそれを作ることができますか?

4

1 に答える 1

0

ではMockMvc、できません。MockMvcHTTP クライアントの一種です。を使用して HTTP 要求を生成し、MockMvcRequestBuildersヘッダー、要求パラメーター、本文、および 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
于 2013-10-16T15:04:29.577 に答える