StrutsTestCase的Cactus測試
Cactus比Mock測試復(fù)雜了很多,但優(yōu)點是可以充分測試整個應(yīng)用環(huán)境,并且可以通過Web容器很容易地得到Spring的資源。
1. 下載兩個資源,StrutsTest和jakarta-cactus,其下載地點分別是http://sourceforge.net/projects/strutstestcase/和http://jakarta.apache.org/cactus/。
2. 編寫一個可以運行Struts+spring應(yīng)用。
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的文件,其內(nèi)容很簡單,只有一行,如下。
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服務(wù)器正常運行的情況下,直接運行上述測試用例即可運行/StuAction.do這個Action的操作。在系統(tǒng)比較復(fù)雜的情況下,直接運行測試用例比從網(wǎng)頁進入合適的功能列表,然后執(zhí)行相應(yīng)的操作以激發(fā)Action動作要簡單快捷得多。
1. 下載兩個資源,StrutsTest和jakarta-cactus,其下載地點分別是http://sourceforge.net/projects/strutstestcase/和http://jakarta.apache.org/cactus/。
2. 編寫一個可以運行Struts+spring應(yīng)用。
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應(yīng)用都是一樣的,拷來拷去的就可以。


















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



































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