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

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

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

    朱雀的IT世界

    每天進(jìn)步一點(diǎn)點(diǎn),努力做好自己

     

    同事的一篇Blog 講使用TDD 其實(shí)核心不在于測試,而在于測試的回饋:影響設(shè)計(jì)和后續(xù)的好處

    When asked "Do you write tests?", a lot of developers these days will say "of course" as their answers. However, not everyone can admit to doing TDD (Test Driven Development) correctly. Test Driven Development says, a developer will write a test that fails first, then write code to make the test pass, and refactor when possible, and repeat. This is what most people's TDD rhythm is. For the most part this is fairly easy to do. But to reach the next level, one has to understand TDD as a tool: TDD means more than just test your own code. Here is a couple tips on what the last "D" means:

    Discipline

    It takes a great deal of discipline to even write a failing test before writing the actual code. Sometimes, we write a little seudo-code here, or move a method definition there, or changing code else where trying to see if more new code needs to be written after it, and sooner than you think you are writing the actual implementation of the methods you wanted to test (Test Afterwards Development anyone?). Other times you write the test, but you are too anxious to even run it and see it fails. And other times you want to jump into the actual code immediately when you see your new test fails, but failing for the unexpected reasons.

    Don't fall into these traps. If anything is true, testing is hard, but it is at the same time rewarding and fun. What's also true is, it will pay off. Write the failing test, draw up your list of tests you will need to write, and satisfy them one by one. Having discipline is the cornerstone of becoming a better programmer.

    Design

    It takes too long to write a test? Tests are running too slowly? Are your tests difficult to read? Are they too brittle and fail all the time? Hang in there! You ever had the feeling you saw code in the codebase that irks the living hell out of your mind written by someone else on your team? Well, it is time for you to get some of these feedback about your own code. Yay, your code sucks! Your tests are telling you that! Let's address each of these one by one.

    Slow running tests? You shouldn't be hitting a database or web service in your unit tests, because you can mock/stub them out. Difficult to mock/stub it out? There probably is a better way to design your classes your tests are hitting. Ever heard of Inversion of Control (or Dependency Injection)? Master them. True TDD masters use them extensively.

    Unreadable tests? Is it because of too many mocks/stubs? Or is it the code is 500 lines long and doing high octane 720-double-backflip logic? Either way, you have to learn to like small objects. Check this blog post of mine out.

    Hard to test something? Tests too brittle? Perhaps you have encapsulation issues in your class design. If your classes are referencing 15 other neighbors, of course they are hard to mock/stub. Chances are, you have to spend time to debug your tests to find out what's wrong! Heard of Law of Demeter? Even if you have, take a look at this highly entertaining yet informative post. It might change your perspective a little.

    The bottom line is, TDD is a way to guide you to writing good code, but only if you know how to use it as a tool. Now that you know, hopefully you will have a new perspective next time you write a test.

    posted on 2007-12-06 11:48 朱雀 閱讀(279) 評論(1)  編輯  收藏

    評論

    # re: 同事的一篇Blog 講使用TDD 其實(shí)核心不在于測試,而在于測試的回饋:影響設(shè)計(jì)和后續(xù)的好處[未登錄] 2008-01-12 08:50 Michael Chen

    If we refer another post/article, we always leave the original link for the readers' reference.  回復(fù)  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲女同成人AⅤ人片在线观看 | 中国内地毛片免费高清| 国产亚洲一区二区手机在线观看| 99久热只有精品视频免费看| 久久亚洲国产成人影院| 久久亚洲av无码精品浪潮| 久久国产精品2020免费m3u8| 亚洲中文久久精品无码1| 亚洲 国产 图片| 精品一区二区三区无码免费视频| 亚洲精品无码不卡在线播放| 在线亚洲精品自拍| 毛片免费在线观看网址| 91成人免费福利网站在线| 亚洲kkk4444在线观看| 亚洲精品无码永久在线观看你懂的| 成年人视频免费在线观看| 一级一看免费完整版毛片| 亚洲冬月枫中文字幕在线看| 2048亚洲精品国产| 国产成人免费爽爽爽视频 | 国产亚洲精品仙踪林在线播放| 亚洲AV无码成人精品区天堂| 日本不卡高清中文字幕免费| 久久国产精品2020免费m3u8| 四虎影视在线看免费观看| 2017亚洲男人天堂一| 久久久久亚洲精品影视| 亚洲成AⅤ人影院在线观看| 中文字幕影片免费在线观看| a级在线免费观看| 黄页网站在线免费观看| 亚洲精品国产精品国自产网站| 久久九九亚洲精品| 亚洲国产精品日韩专区AV| 无码人妻久久一区二区三区免费丨| 免费污视频在线观看| 久久最新免费视频| 免费一级全黄少妇性色生活片| 亚洲乱码在线卡一卡二卡新区| 日韩精品亚洲人成在线观看|