MockFilterConfig—這是FilterConfig接口的一個mock實現。
MockPageContext—這是JSP PageContext接口的一個mock實現。你會發現這個對象的使用有利于測試預編譯的JSP。
MockRequestDispatcher—RequestDispatcher接口的一個mock實現,你主要在其它mock對象內使用它。
MockServletConfig—這是ServletConfig接口的一個mock實現。在單元測試某種Web組件(例如Struts框架所 提供的Web組件)時,要求你設置由 MockServletContext所實現的ServletConfig和ServletContext接口。
那么,我們該如何使用這些mock對象呢?我們知道,HttpServletRequest是一個持有描述HTTP參數的固定值的組件,而正是這些 參數驅動Web組件的功能。MockHttpServletRequest,作為HttpServletRequest接口的一個實現,允許你設置這些不 可改變的參數。在典型的Web組件測試情形下,你可以實例化這個對象并按如下方式設置其中的任何參數:
//指定表單方法和表單行為
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/main.app");request.addParameter("choice", expanded);request.addParameter("contextMenu", "left");
同樣地,你可以實例化并全面地控制和分析HttpResponse和HttpSession對象。接下來,讓我們簡要觀察Spring所提供的特定的JUnit框架擴展。
二、JUnit框架擴展
Spring提供了下列一些特定的JUnit框架擴展:
AbstractDependencyInjectionSpringContextTests—這是一個針對所有測試的超類,其具體使用依賴于Spring上下文。
AbstractSpringContextTests—這是一個針對所有的JUnit測試情形的超類。它使用一個Spring上下文。并且,一般 在測試中不是直接使用它,而是使用AbstractDependencyInjectionSpringContextTests或者 AbstractTransactionalSpringContextTests這樣的派生類。
AbstractTransactionalSpringContextTests—這是一個針對所有測試的超類,我們一般把它應用在事務相關的測 試中。注意,一旦完成每個測試它就會正常地回滾事務;而且你需要重載onSetUpInTransaction和 onTearDownInTransaction方法以便手工開始并提交事務。
AbstractTransactionalDataSourceSpringContextTests—這是 AbstractTransactionalSpringContextTests的一個子類,它使用了Spring的基于JDBC的 jdbcTemplate工具類。
所有上面這些擴展將極大程度地簡化在測試時對于相關操作的依賴性注入和事務管理。
文章來源于領測軟件測試網 http://www.kjueaiud.com/