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

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

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

    隨筆 - 3, 文章 - 152, 評論 - 17, 引用 - 0
    數(shù)據(jù)加載中……

    TDD(1)--轉(zhuǎn)自http://m.tkk7.com/yandazhi

    TDD是這樣一種設(shè)計風(fēng)格

    Maintain an exhaustive suite of Programmer Tests

    維護一套程序員測試的框架

    No code goes into production unless it has associated tests

    除非它已結(jié)合測試,產(chǎn)品不寫入任何代碼

    Write the tests first

    先寫測試

    Tests determine what code you need to write

    測試決定你需要寫什么代碼

    public void testEmptyList() {
        MovieList emptyList 
    =newMovieList();
        assertEquals(
    "Empty list should have size of 0"0, emptyList.size());
    }



    要通過上面的測試,你必須創(chuàng)建一個類MovieList,和一個方法size();

    (eclipse的快速修復(fù)功能能幫你搞定哦。看來先寫測試還是很方便的*^^*)

    讓計算機來告訴你

    你需要增加類或者方法,編譯器會告訴你。(eclipse會向你抱怨有cannot be resolved 的)

    下面看看代碼的演進(jìn)

    public void testRating() {
      assertEquals(
    "Bad average rating.",4,starWars.getAverageRating());
    }



    public void testRating() {
      starWars.addRating(
    3);
      starWars.addRating(
    5);
      assertEquals(
    "Bad average rating.",4,starWars.getAverageRating());
    }


    public void testRating() {
      Movie starWars 
    = new Movie("Star Wars");
      starWars.addRating(
    3);
      starWars.addRating(
    5);
      assertEquals(
    "Bad average rating.",4,starWars.getAverageRating());
    }



    非常有意思,和我們平時寫代碼的順序相反

    下面看看getAverageRating();

    public int getAverageRating() {
      
    return 4;
    }


    public int getAverageRating() {
      
    return (3 + 5/ 2;
    }



    private int totalRating = 0;


    public void addRating(int newRating) {
      totalRating 
    += newRating;
    }




    public int getAverageRating() {
      
    return totalRating / 2;
    }



    private int numberOfRatings = 0;

    public void addRating(int newRating) {
      totalRating 
    += newRating;
      numberOfRatings
    ++;
    }


    public int getAverageRating() {
      
    return totalRating / numberOfRatings;
    }



    實際上,每次變化之后都重新編譯和運行這個測試。

    Agile Modeling and TDD


    采用XP(極限編程)的項目都采用了TDD的輔助手段。建模(modeling)是XP當(dāng)中很重要的的一個部分。XP開發(fā)者使用用戶敘述(user stories) ,用戶敘述是清晰的敏捷模型。

    創(chuàng)建敏捷模型能夠幫助我們TDD工作,這是因為,他能揭示我們需要的測試。一個敏捷模型草圖的背后總是隱含著這樣的思考“我怎樣來測試他”,這將導(dǎo)致一個新的測試案例。

    posted on 2005-07-25 12:26 閱讀(229) 評論(0)  編輯  收藏 所屬分類: Test-Driven Development

    主站蜘蛛池模板: 一边摸一边桶一边脱免费视频| 精品亚洲AV无码一区二区| 亚洲AV无码一区二区三区鸳鸯影院| 波多野结衣在线免费观看| 亚洲日韩区在线电影| 免费A级毛片无码A∨中文字幕下载| 亚洲av无码乱码国产精品| 一个人免费视频在线观看www| 国产亚洲精品成人AA片新蒲金| 黄页网址在线免费观看| 亚洲精品第一国产综合境外资源| 黄网站色成年片大免费高清| 亚洲国产高清精品线久久| 一区二区免费电影| 国产AV无码专区亚洲精品| 久久这里只精品99re免费| 亚洲欧洲日韩国产| 成人午夜免费福利| 激情吃奶吻胸免费视频xxxx| 国产av无码专区亚洲国产精品| 天黑黑影院在线观看视频高清免费| 亚洲大成色www永久网站| 最近2019中文字幕免费直播| va天堂va亚洲va影视中文字幕| 免费激情视频网站| 一级毛片大全免费播放| 亚洲国产精品特色大片观看完整版| 亚洲国产精品免费视频| 亚洲熟妇无码av另类vr影视| 午夜亚洲av永久无码精品 | 亚洲黄页网在线观看| 国产精品久免费的黄网站| 97国免费在线视频| 亚洲国产精品久久网午夜| 国产三级免费观看| 华人在线精品免费观看| 精品久久久久久亚洲精品| 亚洲精品第一国产综合境外资源| 日韩精品人妻系列无码专区免费| 国产精品亚洲精品观看不卡| 亚洲精品久久久www|