亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-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
主站蜘蛛池模板: 最近最好看2019年中文字幕 | 午夜资源网 | 亚洲欧美日韩精品久久奇米色影视 | 免费黄色网址在线观看 | 老湿机福利影院 | 欧美日韩高清不卡一区二区三区 | 国产caonila在线观看 | 亚洲1区2区3区4区 | 久操精品 | 免费在线观看你懂的 | 午夜国产精品免费观看 | 欧美日韩无线码免费播放 | 性欧美老妇人视频 | 免费黄色的网站 | 国产玖玖| 免费在线观看黄网站 | 天天摸日日操 | va视频| 中文字幕欧美日韩一 | 操操操日日日 | 又黄又爽的成人免费视频播放 | 美女黄色免费在线观看 | 在线 亚洲 欧美 | 天天干天天干天天干天天干天天干 | 国产成人精品免费视频大 | 中国特级毛片 | 日韩在线视频网址 | 国产一区视频在线免费观看 | 国产伦一区二区三区免费 | 久久亚洲不卡一区二区 | 免费看片黄 | 色天天躁夜夜躁天干天干 | 在线观看免费毛片 | 国产一区二区三区不卡观 | 天天爱天天干天天操 | 日本中文字幕二区三区 | 久久99精品视免费看 | 在线播放a | 黄a 大片a v 永久免费 | 免费看的黄色录像 | 日本三级一区二区三区 |