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

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

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

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

    測試驅動開發實踐——重構篇

    發布: 2009-6-26 10:08 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 91次 | 進入軟件測試論壇討論

    領測軟件測試網 前一篇文章《測試驅動開發實踐-入門篇》我們我們講了一些基本的測試驅動開發流程:

      1、寫單元測試使他亮紅燈

      2、寫代碼使測試變成綠燈

      3、重構代碼

      接下來我們需要開始重構了,大家有可能會問,為什么需要重構,什么時候開始重構。

      對與為什么需要重構,其實就是為了使代碼結構清晰,去除一些重復的代碼,比如我們執行sql語句操作,我們起初這樣寫:

    Code
     1private connStr="server=.;database=TestDB;uid=sa;pwd=123"
     2public int Add(string loginName)
     3{
     4    int count = 0;
     5    using (SqlConnection conn = new SqlConnection(connStr))
     6    {
     7        conn.Open();
     8        SqlCommand cmd = new SqlCommand("insert(loginName) value('" + loginName + "')", conn);
     9        count = cmd.ExecuteNonQuery();
    10        cmd.Dispose();
    11        conn.Close();
    12    }
    13    return count;
    14}
    15
    16public int Delete(string loginName)
    17{
    18    int count = 0;
    19    using (SqlConnection conn = new SqlConnection(connStr))
    20    {
    21        conn.Open();
    22        SqlCommand cmd = new SqlCommand("delete from LoginUsers where loginName='" + loginName + "'", conn);
    23        count = cmd.ExecuteNonQuery();
    24        cmd.Dispose();
    25        conn.Close();
    26    }
    27    return count;
    28}

      我們發現這里除了sql語句不一樣之外,其他都是一樣的,那我們就可以這樣重構:

     1private int ExecuteSql(string sql)
     2{
     3    int count = 0;
     4    using (SqlConnection conn = new SqlConnection(connStr))
     5    {
     6        conn.Open();
     7        SqlCommand cmd = new SqlCommand(sql, conn);
     8        count = cmd.ExecuteNonQuery();
     9        cmd.Dispose();
    10        conn.Close();
    11    }
    12    return count;
    13}
    14public int Add(string loginName)
    15{
    16    return ExecuteSql("insert(loginName) value('" + loginName + "')");
    17}
    18public int Delete(string loginName)
    19{
    20    return ExecuteSql("delete from LoginUsers where loginName='" + loginName + "'");
    21}

    延伸閱讀

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

    TAG: 開發 驅動 實踐 重構


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(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>