亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
基于Junit2.0的StrutsTestCase應用
作者:網絡轉載 發布時間:[ 2013/3/8 15:59:09 ] 推薦標簽:

 首先我們頭腦總中有這樣一個actionmapping(注意只是假設的):

<action path=”/longin” type=”Jplateau.strutstestcase.LonginAction”

                   scope="request"

                   name="userForm">

<forward  name="success" path="/main.jsp"/>

<forward  name="login" path="/login.jsp"/>

</action>

有了這樣一個假設,我們可以從測試代碼入手:

public class TestLoginAction extends MockStrutsTestCase {

public void setUp() {

 super.setUp();

 //這里做一些初始化的東西,譬如數據庫連接等

 }

public void tearDown() {

 super.tearDown();

 //這里關閉你在setup中開啟的資源,如關閉數據庫連接等

}

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

public void testSuccessfulLogin() {

//選擇你要執行哪一個actionmapping?這里用我們剛才做的假設材料

this. setRequestPathInfo("/login");

//首先要初始化提交數據:用戶名、密碼

this.addRequestParameter(“usrename”,”Jplateau”);

this.addRequestParameter(“passwd”,”sandy”);

//注意有了這個之后,你可以從formbean中使用提交以后的用戶名和密碼數據了,下//面我會解釋

//好,初始化數據完成以后開始執行action中的execute(),很簡單,掉用actionPerform()

this. ActionPerform();

//嚴正返回是否正確?這里用我們剛才做的假設材料

this verifyForward(“success”);.

//下面驗證登陸成功以后session中是否有用戶的名稱?

String expect_username_from_session=”Jplateau”;

//這里需要插寫內容,是strutstestcase完全可以在測試代碼中使用跟真實action

//中一樣的環境,譬如可以通過this.getActionForm()得到相應的ActionForm

//可以通過this.getRequest()得到HttpRequest

//可以通過this.getSession()得到HttpSession,如下:

String actual_username_from_session=this.getSession().getAttribute(“authentication”);

this. assertEquals(“”, expect_username_from_session, actual_username_from_session);

}

public void testFailureLogin(){

//登陸失敗的測試在此不寫了

}

}

上邊是一個簡單的測試代碼,好,運行!他此時肯定是通不過的,首先我們的java代碼還沒有寫,struts-config.xml還沒有配,那么,現在你可以現在做這些事情:“用簡單的做法或代碼讓上邊那個測試通過。”

第三部分:兼容struts1.1開發員

下面說寫和struts1.1相關的內容:測試tiles和多模塊!

測試tiles

假設我們的actionmapping中有這樣forward到tiles的情況,如下:

//這里有關struts中tiles的使用不做介紹,請參考相關資料

<forward name="success"                     path="/userListLayout"/>

同時tiles_defs.xml中有相應配置:

//其中mainLayout是我在tiles定義的類型框架 

<definition name="userListLayout" extends="mainLayout">

      <put name="body" value="/main.jsp" />

  </definition>

那么我們在測試代碼中可以如下測試tiles

//

this. verifyTilesForward(“success”,”userListLayout”);

測試多模塊:

關于多模塊的測試我希望能在下面代碼的注釋部分給你一個大概的介紹:

public class TestLoginAction extends MockStrutsTestCase {

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

public void testSuccessfulLogin() {

   //“mymodule”為系統中某個單獨模塊的名稱(文件夾的名稱)

setConfigFile("mymodule","/WEB-INF/struts-config-mymodule.xml");

//這個地方和前面單模塊的例子有些差別,此處有兩個參數,第一個參數是模塊的

//名稱,第二個參數的意義和上邊相同;

//和單模塊相比,上邊兩處區別

       this.setRequestPathInfo("/mymodule","/login.do");

       this.addRequestParameter("username","Jplateau");

       this.addRequestParameter("password","sandy");

       this.actionPerform();

       this.verifyForward("success");

String expect_username_from_session=”Jplateau”;

String actual_username_from_session=this.getSession().getAttribute(“authentication”);

this. assertEquals(“”, expect_username_from_session, actual_username_from_session);

    }

}

參考資源:

1.  http://strutstestcase.sourceforge.net

(本篇文章基本上是沿用該篇文檔的思路,英文好的可以閱讀這篇文檔。)

2.  Kent Beck 《Test-Driven Development By Example》

3. 本文首發于本人資料站點:http://plateau.sicool.com

上一頁12下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 手机免费看伦理片 | 国产在线a不卡免费视频 | 韩国三级伦理片 | 日本三级免费观看 | 极品精品国产超清自在线观看 | 成年免费大片黄在线观看视频 | 成人欧美一区二区三区视频 | 天天干夜夜爽天天操夜夜爽视频 | 日韩在线播放全免费 | 欧美成人一区二区三区在线视频 | 最近免费手机中文字幕3 | 欧美视频在线观看免费 | 欧美日韩在线不卡 | 成年片色大黄全免费 | 亚洲成色999久久网站 | 日韩在线视频不卡一区二区三区 | 亚洲第一页在线视频 | 躁夜夜躁 | 狠狠干夜夜爱 | 婷婷激情狠狠综合五月 | 欧美一区日韩一区中文字幕页 | 亚洲日本va中文字幕线 | 国产成人精品日本亚洲网站 | 日日热| 小娜的荡高h放荡日记 | 欧美亚洲专区 | 男人操女人免费网站 | 特一级黄 | 欧美成人怡红院在线观看 | 182tv午夜精品视频在线播放 | 黄色短视频在线免费观看 | 九九热在线视频播放 | 免费韩国理伦片在线观看 | 日韩不卡视频在线 | 国产在线视频专区 | 久久国产精品亚洲一区二区 | 特级黄国产片一级视频播放 | 国产91精品系列在线观看 | 欧美黄www免费 | 亚洲aⅴ男人的天堂在线观看 | 欧美性v视频播放 |