StrutsTestCase的Cactus測試
Cactus比Mock測試復雜了很多,但優點是可以充分測試整個應用環境,并且可以通過Web容器很容易地得到Spring的資源。
1. 下載兩個資源,StrutsTest和jakarta-cactus,其下載地點分別是http://sourceforge.net/projects/strutstestcase/和http://jakarta.apache.org/cactus/。
2. 編寫一個可以運行Struts+spring應用。
3. 在WEB-INF\lib目錄下加入StrutsTest的strutstest-2.1.0.jar,加入jakarta-cactus的
<servlet>
<servlet-name>ServletRedirector</servlet-name>
<servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>
</servlet>
<!---定義ServletTestRunner-->
<servlet>
<servlet-name>ServletTestRunner</servlet-name>
<servlet-class>org.apache.cactus.server.runner.ServletTestRunner</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletRedirector</servlet-name>
<url-pattern>/ServletRedirector</url-pattern>
</servlet-mapping>
<!---映射ServletTestRunner-->
<servlet-mapping>
<servlet-name>ServletTestRunner</servlet-name>
<url-pattern>/ServletTestRunner</url-pattern>
</servlet-mapping>
5. 在WEB-INF\classes目錄下新建一個名為cactus.properties的文件,其內容很簡單,只有一行,如下。
package action;

import servletunit.struts.CactusStrutsTestCase;


public class TestStuAction extends CactusStrutsTestCase
{

public TestStuAction(String testName)
{
super(testName);
}

public void setUp() throws Exception
{
super.setUp();
}

public void testInsert()
{
setRequestPathInfo("/StuAction");
addRequestParameter("cardId","radar");
addRequestParameter("name","aaaa");
addRequestParameter("age","34");
addRequestParameter("method","insert");
actionPerform();
verifyForward("stu_list");
}


}


然后在保存Web服務器正常運行的情況下,直接運行上述測試用例即可運行/StuAction.do這個Action的操作。在系統比較復雜的情況下,直接運行測試用例比從網頁進入合適的功能列表,然后執行相應的操作以激發Action動作要簡單快捷得多。
1. 下載兩個資源,StrutsTest和jakarta-cactus,其下載地點分別是http://sourceforge.net/projects/strutstestcase/和http://jakarta.apache.org/cactus/。
2. 編寫一個可以運行Struts+spring應用。
3. 在WEB-INF\lib目錄下加入StrutsTest的strutstest-2.1.0.jar,加入jakarta-cactus的
cactus.jar
commons-httpclient.jar
commons-logging.jar
junit.jar
aspectjrt.jar
4. 在web.xml中加入以下代碼,這些代碼幾乎對所有的WEb應用都是一樣的,拷來拷去的就可以。


















5. 在WEB-INF\classes目錄下新建一個名為cactus.properties的文件,其內容很簡單,只有一行,如下。
上述的網址表示自己的Web應用的根地址。
6. 編寫測試用例。



































然后在保存Web服務器正常運行的情況下,直接運行上述測試用例即可運行/StuAction.do這個Action的操作。在系統比較復雜的情況下,直接運行測試用例比從網頁進入合適的功能列表,然后執行相應的操作以激發Action動作要簡單快捷得多。