自定義對象,我需要JUnit測試,以檢查控制器。通過提交表單來調用控制器的方法。該方法接收填充對象EmailDispatchForm form
。MockMvc。如何參與JUnit測試
下面是從控制器片段:
@RequestMapping(value={"/sendEmail"}, method=POST)
public String sendEmail(EmailDispatchForm form,Model model){
String status = "OK";
try {
workFlows.sendEmailAndRecordHistory(form);
} catch (Exception e) {
status = "ERROR";
model.addAttribute("errDescription", e.getCause().getMessage());
logger.error(e, e);
} finally {
model.addAttribute("sentEmailStatus", status);
}
return CommonConstants.VIEW_EMAIL_SENT;
}
這是我的JUnit測試:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(classes = {WebConfig.class})
public class HomeControllerTest {
@Autowired
private WebApplicationContext webApplicationContext;
private MockMvc mockMvc;
@Before
public void setup() {
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}
@Test
public void testShowEmailForm() throws Exception{
mockMvc.perform(get("/emailForm")).andExpect(view().name(CommonConstants.VIEW_EMAIL));
}
}
怎麼可以看到,在控制器中存在的方法sendEmail()
,這有兩個參數:EmailDispatchForm form
,Model model
。我不知道如何在junit測試中涉及這兩個參數以將其用作模擬對象。
我會非常感謝幫助,並想了解一些資源(書籍)來研究這個問題的主題。
謝謝Cremson。這也是一個解決方案。 –