<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 251  文章 - 504  trackbacks - 0
    <2006年11月>
    2930311234
    567891011
    12131415161718
    19202122232425
    262728293012
    3456789

    本博客系個人收集材料及學習記錄之用,各類“大俠”勿擾!

    留言簿(14)

    隨筆分類

    收藏夾

    My Favorite Web Sites

    名Bloger

    非著名Bloger

    搜索

    •  

    積分與排名

    • 積分 - 202607
    • 排名 - 284

    最新評論

    3.6、JUnit一個實例

    在控制臺中簡單的范例如下:
    1、寫個待測試的Triangle類,創建一個TestCase的子類ExampleTest:
    2、 ExampleTest中寫一個或多個測試方法,斷言期望的結果(注意:以test作為待測試的方法的開頭,這樣這些方法可以被自動找到并被測試)
    3、 ExampleTest中寫一個suite()方法,它會使用反射動態的創建一個包含所有的testXxxx方法的測試套件:
    4、 ExampleTest可以寫setUp()、tearDown()方法,以便于在測試時初始化或銷毀測試所需的所有變量和實例。(不是必須的)

    5、寫一個main()方法以文本運行器或其它GUI的方式方便的運行測試

    6、編譯ExampleTest,執行測試。

    3.7、Eclipse中JUnit的使用

    Eclipse自帶了一個JUnit的插件,不用安裝就可以在你的項目中開始測試相關的類,并且可以調試你的測試用例和被測試類。

    使用步驟如下:

    1、新建一個測試用例,點擊“File->New->Other…菜單項,在彈出的“New”對話框中選擇”Java->JUnit”,下的TestCase 或TestSuite,就進入“New JUnit TestCase”對話框

    2、在“New JUnit TestCase”對話框填寫相應的欄目,主要有Name(測試用例名),SuperClass(測試的超類一般是默認的junit.framework.TestCase),Class Under Test(被測試的類),Source Folder(測試用例保存的目錄),Package(測試用例包名),及是否自動生成main,setUp,tearDown方法。

    3、如果點擊下面的”Next>”按鈕,你還可以直接勾選你想測試的被測試類的方法,Eclipse將自動生成與被選方法相應的測試方法,點擊“Fishish”按鈕后一個測試用例就創建好了。

    4、編寫完成你的測試用例后,點擊“Run”按鈕就可以看到運行結果了。

    3.8、JUnit的擴展應用

    以下羅列了些JUnit的擴展應用:

    JUnit + HttpUnit=WEB功能測試工具
    JUnit + hansel =代碼覆蓋測試工具
    JUnit + abbot =界面自動回放測試工具
    JUnit + dbunit =數據庫測試工具
    JUnit + junitperf=性能測試工具

    3.9、一些使用JUnit經驗

    不要用TestCase的構造函數初始化,而要用setUp()和tearDown()方法。
    不要依賴或假定測試運行的順序,因為JUnit利用Vector保存測試方法。所以不同的平臺會按不同的順序從Vector中取出測試方法。
    避免編寫有副作用的TestCase。例如:如果隨后的測試依賴于某些特定的交易數據,就不要提交交易數據。簡單的回滾就可以了。
    當繼承一個測試類時,記得調用父類的setUp()和tearDown()方法。
    將測試代碼和工作代碼放在一起,一邊同步編譯和更新。
    測試類和測試方法應該有一致的命名方案。如在工作類名前加上test從而形成測試類名。
    確保測試與時間無關,不要依賴使用過期的數據進行測試。導致在隨后的維護過程中很難重現測試。
    如果你編寫的軟件面向國際市場,編寫測試時要考慮國際化的因素。不要僅用母語的Locale進行測試。
    盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法,可以使代碼更為簡潔。
    測試要盡可能地小,執行速度快。


    參考資料與附件

    1. http:// www.junit.org JUnit官方網站

    2. http://bbs.51cmm.com 的測試論壇

    3. http://www.uml.org.cn 的軟件測試專欄

    4. 單元測試 《程序員》 2002年7期

    5. JUnit設計模式分析 《程序員》2003年6期

    6. 《軟件測試和JUnit實踐》

    7. 附件Triangle.java 一個要測試的類


    Triangle.java

    /**

    * this is Triangle class

    * @author liujun

    */

    public class Triangle

    {

    //定義三角形的三邊

    protected long lborderA = 0;

    protected long lborderB = 0;

    protected long lborderC = 0;

    ?

    //構造函數

    public Triangle(long lborderA,long lborderB,long lborderC)

    {

    this.lborderA = lborderA;

    this.lborderB = lborderB;

    this.lborderC = lborderC;

    }

    /**

    * 判斷是否是三角形

    * 是返回ture;不是返回false

    */

    public boolean isTriangle(Triangle triangle)

    {

    boolean isTrue = false;

    //判斷邊界,大于0小于200,出界返回false

    if((triangle.lborderA>0&&triangle.lborderA<200)

    &&(triangle.lborderB>0&&triangle.lborderB<200)

    &&(triangle.lborderC>0&&triangle.lborderC<200))

    {

    //判斷兩邊之和大于第三邊

    if((triangle.lborderA<(triangle.lborderB+triangle.lborderC))

    &&(triangle.lborderB<(triangle.lborderA+triangle.lborderC))

    &&(triangle.lborderC<(triangle.lborderA+triangle.lborderB)))

    isTrue = true;

    }

    return isTrue;

    }

    ?

    /**

    * 判斷三角形類型

    * 等腰三角形返回字符串“等腰三角形”;

    * 等邊三角形返回字符串“等邊三角形”;

    * 其它三角形返回字符串“不等邊三角形”;

    */

    public String isType(Triangle triangle)

    {

    String strType = "";

    // 判斷是否是三角形

    if(this.isTriangle(triangle))

    {

    //判斷是否是等邊三角形 if(triangle.lborderA==triangle.lborderB&&triangle.lborderB==triangle.lborderC)

    strType = "等邊三角形";

    //判斷是否是不等邊三角形

    else if((triangle.lborderA!=triangle.lborderB)&&

    (triangle.lborderB!=triangle.lborderC)&&

    (triangle.lborderA!=triangle.lborderC))

    strType = "不等邊三角形";

    else

    strType="等腰三角形";

    }

    return strType;

    }

    }

    8. 附件ExampleTest.java 一個測試用例類

    ExampleTest.java

    import junit.framework.*;

    /**

    * Some tests.

    *

    */

    public class ExampleTest extends TestCase {

    public Triangle triangle;

    //初始化

    protected void setUp() {

    triangle=new Triangle(10,2,9);

    }

    ?

    public static Test suite() {

    return new TestSuite(ExampleTest.class);

    }

    //函數isTriangle()的測試用例

    public void testIsTriangle() {

    assertTrue(triangle.isTriangle(triangle));

    }

    //函數isType()的測試用例

    public void testIsType()

    {

    assertEquals("這次測試",triangle.isType(triangle),"不等邊三角形");

    }

    ?

    //執行測試

    public static void main (String[] args) {

    //文本方式

    junit.textui.TestRunner.run(suite());

    //Swingui方式

    //junit.swingui.TestRunner.run(suite().getClass());

    //awtui方式

    //junit.awtui.TestRunner.run(suite().getClass());

    ?

    }

    }

    posted on 2006-11-26 15:16 matthew 閱讀(483) 評論(0)  編輯  收藏 所屬分類: 軟件測試技術
    主站蜘蛛池模板: 国产精品亚洲专一区二区三区| 日本一区二区三区在线视频观看免费| 免费视频专区一国产盗摄| 亚洲乱妇熟女爽到高潮的片 | 日本特黄特色免费大片| 日本一区二区三区免费高清在线| 久久久久亚洲Av片无码v| 免费看国产精品3a黄的视频| 黄视频在线观看免费| 亚洲乱码无限2021芒果| 亚洲片一区二区三区| 午夜国产精品免费观看| 中文字幕手机在线免费看电影| 亚洲午夜精品一区二区公牛电影院 | 无码一区二区三区免费视频| 一区二区三区免费高清视频| 亚洲av乱码一区二区三区香蕉 | 亚洲视频一区在线观看| 亚洲成片观看四虎永久| 久久精品网站免费观看| 日本在线免费观看| 国产亚洲精品2021自在线| 亚洲女人影院想要爱| 亚洲色偷偷偷鲁综合| 日本特黄特色aa大片免费| 亚洲一级毛片免费在线观看| 久久99久久成人免费播放| 亚洲乱码无人区卡1卡2卡3| 亚洲资源在线观看| 亚洲精品成人片在线播放| 四虎影视永久免费观看| 免费一本色道久久一区| 亚洲精品视频免费看| 波多野结衣免费一区视频| 青青青视频免费观看| 亚洲爆乳AAA无码专区| 亚洲最大的黄色网| 久久久久久亚洲Av无码精品专口 | 亚洲妇女熟BBW| 亚洲白色白色永久观看| 国产亚洲精久久久久久无码|