• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    JUnit in java 真正的測試用例實戰

    發布: 2008-9-01 11:03 | 作者: 扁豆的專欄 | 來源: blog | 查看: 136次 | 進入軟件測試論壇討論

    領測軟件測試網
             當今軟件測試十分盛行時,本人通過項目實踐和個人親身體會淺談單元測試,本人一直堅持用代碼說話的原則,同時也希望個人能給出寶貴意見,共同探討、共同進步,為中國軟件事業有更大的發展共同奮斗!
    最早我們項目組開發的項目時,寫代碼都是從底層一直寫到表現層到jsp,然后開發人員在web層調試頁面,近乎98%都會報一大堆exception,然后再在代碼中加斷點一步一步查到底哪一層代碼出現問題……,比較好點做法就是在各個類中加上main方法測試,但總體很不理想,給web層開發人員的調試和質量控制人員帶來繁重的工作壓力;使用單元測試后,針對每一個方法都做嚴格的把關,大大減少調試的時間;同時質量控制人員返回過來的bug少了近60%,現在對于開發人員寫測試用例非常熟練,并且本人根據實際情況對測試用例做了點小小改動(這部分主要在后面代碼中詳述),帶來很好的效果!
    單元測試到底給實際開發帶來什么好處那?
    1           (1)首先對于開發人員來說大大減少調試工作的時間,同時也規范了對于代碼安全管理(我們知道那些方法是可以調用的);
    2           (2) 對于整個項目來說,有了完整的測試,保證項目最后交付測試有了可靠依據;
    3           (3)對于測試人員大大減少bug的反饋;
    4           (4)對于項目經理整個項目達到很好的可控;
    5          (5)最主要的完整的單元測試給后期維護人員帶來很大的便捷!
    單元測試好處可能還有很多,但本人只能理解和感悟這么多,希望觀者補充!
    單元測試配置:
           我將使用eclipsemyEclopse給大家介紹關于JUNIT的環境的簡單配置;右鍵點擊項目選擇屬性,在彈出窗口中到環境變量中添加junit.jar包,這樣下一步我們就可以進行單元測試了;
    使用eclipse快速開發test Case
    如下圖:右鍵選擇你要測試的類,在新建中點擊“JUnit 測試用例,
    彈出對話框,配置測試名稱和根目錄,添加注釋等,再點擊下一步到下圖:
          選擇你要測試類中的方法,點擊完成!便生成測試類的基本框架,如下代碼,我們以對一個DAO類測試為例:
    /**//*
     * Copyright reserved 2005 by XXXXCo. Ltd.
     * Author
    Fu wei    Date2006-9-4
     */



    import junit.framework.TestCase;

    /** *//**
     * 
    @author Fu wei
     */

    public class OrgTypeDAOTest extends TestCase ...{
        
    /** *//**
         * 
    @param arg0
         */

        
    public OrgTypeDAOTest(String arg0) ...{
            
    super(arg0);
        }

        
    /**//* 
         * @see junit.framework.TestCase#setUp()
         */

        
    protected void setUp() throws Exception ...{
            
    super.setUp();
        }

        
    /**//* 
         * @see junit.framework.TestCase#tearDown()
         */

        
    protected void tearDown() throws Exception ...{
            
    super.tearDown();
        }
        
    /** *//**
         *  
    主函數
         * 
    @param args
         */

        
    public static void main(String[] args)...{
            TestRunner.run(OrgTypeDAOTest .
    class);
        }
        
    /** *//**
         * {
    @link OrgTypeDAO#getOrgTypeList()} 測試方法。
         */

        
    public final void testGetOrgTypeList() ...{
            fail("
    尚未實現"); // TODO
        }

        
    /** *//**
         * {
    @link OrgTypeDAO#insertOrgTypeInfo(com.zhjy.mltx.vo.OrgTypeVO)} 的測試方法。
         */

        
    public final void testInsertOrgTypeInfo() ...{
            fail("
    尚未實現"); // TODO
        }

        
    /** *//**
         * {
    @link OrgTypeDAO#deleteOrgTypeInfo(java.lang.String)} 的測試方法。
         */

        
    public final void testDeleteOrgTypeInfo() ...{
            fail("
    尚未實現"); // TODO
        }

        
    /** *//**
         * {
    @link OrgTypeDAO#updateOrgTypeInfo(com.zhjy.mltx.vo.OrgTypeVO)} 的測試方法。
         */

        
    public final void testUpdateOrgTypeInfo() ...{
            fail("
    尚未實現"); // TODO
        }

        
    /** *//**
         * {
    @link OrgTypeDAO#getOrgTypeInfoById(java.lang.String)} 的測試方法。
         */

        
    public final void testGetOrgTypeInfoById() ...{
            fail("
    尚未實現"); // TODO
        }

        
    /** *//**
         * {
    @link OrgTypeDAO#isRepeatOrgTypeInfo(java.lang.String)} 的測試方法。
         */

        
    public final void testIsRepeatOrgTypeInfoString() ...{
            fail("
    尚未實現"); // TODO
        }

        
    /** *//**
         * {
    @link OrgTypeDAO#isRepeatOrgTypeInfo(com.zhjy.mltx.vo.OrgTypeVO)} 的測試方法。
         */

        
    public final void testIsRepeatOrgTypeInfoOrgTypeVO() ...{
            fail("
    尚未實現"); // TODO
        }

        
    /** *//**
         * {
    @link OrgTypeDAO#getFlatOrgIdByName(java.lang.String)} 的測試方法。
         */

        
    public final void testGetFlatOrgIdByName() ...{
            fail("
    尚未實現"); // TODO
        }
    }
     
     JUnit單元測試一共要注意一下幾點:
    1import junit.framework.TestCase junit.textui.TestRunner;
    2)繼承junit.framework.TestCase ;
    3)自行添加一個main方法    中調用TestRunner.run(測試類名.class);
    4)有一個調用super(String)的構造函數;
            以上都是JUnit必有的特征,除以上外,我們發現有許多以test開頭的方法,而這些方法正是我們要測試的方法,Junti測試其實采用的是斷言的方式,只要我們在所有test開頭中的方法對數據添加斷言方法,同時提供很多斷言的方法,

    常用斷言方法
    assertEquals("失敗提示信息","期望數據","測試數據")
    斷言獲取數據是否與所期望的相等
    assertNotNull("失敗提示信息","測試數據")
    斷言獲取數據不為null,否則提示錯誤
    assertNull("失敗提示信息","測試數據")
    斷言獲取數據是為null,否則提示錯誤
    assertTrue("失敗提示信息",測試數據blooean)
    斷言獲取數據是否為ture,否則提示錯誤
    fail("失敗提示信息");
    此方法一般放到異常處,遇到此方法,測試將停止!
    assertSame("失敗提示信息","期望數據","測試數據")
    斷言獲取數據是否與所期望的相同

    當我們寫完所有方法策略后,JUnit測試如下圖:
    在方法頁面中點擊右鍵在調試方式運行方式中點擊JUnit 測試,就運行測試類!

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: java JAVA Java junit Junit JUnit JUNIT 實戰

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>