StrtusTest是junit的擴展當前的版本是StrutsTest2.1.0,在這個版本中不支持Struts1.0。如果需要測試struts1.0的應(yīng)用程序,對應(yīng)的版本是StrutsTest2.0??梢詮?/span>http://sourceforge.net/projects/strutstestcase/下載。
下面介紹一下它的使用。直接把解壓的下載文件保存到項目的classpath中,然后再引入這兩個jar文件,就可以使用了。
右擊項目中任何一個文件夾,選擇news的others,這時就會出現(xiàn)Junit的文件夾,展開文件夾選擇JUnit Test Case ,點擊下一步,在Name中填寫測試程序的名字,一般名字必須以Test結(jié)尾。然后構(gòu)選setup()和teardown()選項,選擇需要測試的Action,點擊下一步,選擇需要測試的方法,點擊Finish即可自動生成測試文件。測試文件中自動生成了setup()和teardown()方法,用來在測試方法執(zhí)行前初始化測試環(huán)境和在執(zhí)行后撤銷測試環(huán)境。測試方法都是以test開頭的,如(testDoExecute()).
下面在測試方法中就可以填寫自己需要的東西了。如下面的例子:




/**
* @author paul.ping(wp.huang@ezcross.com)
*
* 類名:SMS10Test
* 操作:
*/
public class LoginActionTest extends MockStrutsTestCase {
/*
* @see TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
}
/*
* @see TestCase#tearDown()
*/
protected void tearDown() throws Exception {
super.tearDown();
}
public void testDoExecute() {
try
{
addRequestParameter("user_name","cka");
addRequestParameter("passward","111111");
setRequestPathInfo("/login");
System.out.println("hava completed adding data");
actionPerform();
System.out.println("begin verify");
verifyForward("dologin");
verifyForwardPath("/Login.jsp");
verifyNoActionErrors();
System.out.println("end verify");
//assertNotNull(testObject.doExecute(null,null,null,null,null));
}
catch (Exception ee)
{
System.out.println(ee.toString());
}
}
}
填寫完程序后,右擊程序,選擇run下的JUnit Test進行運行,如果沒有錯誤的話則顯示綠色 ,否則顯示紅色。
對程序的說明:
主要函數(shù)和作用:
- setContextDirectory,設(shè)置web應(yīng)用的根
- setRequestPathInfo,設(shè)置request的請求
- addRequestParameter,將參數(shù)和對應(yīng)的值加入request中
- actionPerform,執(zhí)行這個請求
- verifyForward,驗證forward的名字是否正確
- verifyForwardPath,驗證forward的path是否正確
- verifyNoActionErrors,驗證在action執(zhí)行過程中沒有ActionError產(chǎn)生
- verifyActionErrors,驗證在action執(zhí)行過程中產(chǎn)生的ActionError集合的內(nèi)容
具體詳細的內(nèi)容請參見對應(yīng)的javaDoc。