public void testInvokesCorrectMethodWithSession() throws Exception {
TestController cont = new TestController();
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/invoiceView.app");
request.setSession(new MockHttpSession(null));
HttpServletResponse response = new MockHttpServletResponse();
ModelAndView mv = cont.handleRequest(request, response);
assertTrue("Invoked loggedIn method", cont.wasInvoked("loggedIn"));
assertTrue("view name is ",mv.getViewName().equals("loggedIn"));
assertTrue("Only one method invoked", cont.getInvokedMethods() == 1);//測試控制器但是不使用會話
request = new MockHttpServletRequest("GET", "/invoiceView.app");
response = new MockHttpServletResponse();
try {
cont.handleRequest(request, response);
fail("Should have rejected request without session");
} catch (ServletException ex) {//在此加入期盼的異常處理}}
(三)轉發和重定向
一個Spring MVC組件執行的操作能夠導致轉發或重定向到另一個URL。如果你的目標是分析轉發或重定向的結果,那么你可以測試這一情形—通過分析MockHttpResponse對象并進而確定有哪些內容包含在它的重定向或轉發值中,如下所示:
String responseString = ((MockHttpServletResponse)httpResponse).getForwardedUrl();
assertEquals( "Did not forward to the expected URL", responseString, expectedString);
四、生成正確的二進制輸出
如何確定你有多少次必須實現“View as PDF”這一功能?下面的JUnit代碼片斷使用mock輸出流對象實現這一功能的正確測試:
public void testPDFGeneration() throws Exception {
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
文章來源于領測軟件測試網 http://www.kjueaiud.com/