StrtusTest是junit的擴展當前的版本是StrutsTest2.1.0,在這個版本中不支持Struts1.0。如果需要測試struts1.0的應用程序,對應的版本是StrutsTest2.0。可以從http://sourceforge.net/projects/strutstestcase/下載。
下面介紹一下它的使用。直接把解壓的下載文件保存到項目的classpath中,然后再引入這兩個jar文件,就可以使用了。
右擊項目中任何一個文件夾,選擇news的others,這時就會出現Junit的文件夾,展開文件夾選擇JUnit Test Case ,點擊下一步,在Name中填寫測試程序的名字,一般名字必須以Test結尾。然后構選setup()和teardown()選項,選擇需要測試的Action,點擊下一步,選擇需要測試的方法,點擊Finish即可自動生成測試文件。測試文件中自動生成了setup()和teardown()方法,用來在測試方法執行前初始化測試環境和在執行后撤銷測試環境。測試方法都是以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進行運行,如果沒有錯誤的話則顯示綠色 ,否則顯示紅色。
對程序的說明:
主要函數和作用:
- setContextDirectory,設置web應用的根
- setRequestPathInfo,設置request的請求
- addRequestParameter,將參數和對應的值加入request中
- actionPerform,執行這個請求
- verifyForward,驗證forward的名字是否正確
- verifyForwardPath,驗證forward的path是否正確
- verifyNoActionErrors,驗證在action執行過程中沒有ActionError產生
- verifyActionErrors,驗證在action執行過程中產生的ActionError集合的內容
具體詳細的內容請參見對應的javaDoc。