也談TDD

????最近在組織項目成員的能力提升,不可避免的就進入了TDD這個話題。對于TDD,已經(jīng)成為很多公司員工入職的專業(yè)知識培訓(xùn)課程。網(wǎng)上關(guān)于TDD的各種文章和討論也很多,但是感覺大家都是望文生義,都是先寫測試用例,再寫代碼。
????可能有人會說TDD就是“Test Driven Development”,就是測試驅(qū)動開發(fā)。就是寫測試用例,然后再寫代碼。我承認,書里是這么寫的。大家也是這么理解,然后去實踐的。實際效果如何呢,就我了解的情況,大家對這個都很糾結(jié)。很多都在說,我先寫幾行代碼,然后再寫用例為啥就不行了呢?難道真是缺少儀式感嗎?
????那么我先說說,我最近的思考。TDD方式,實際上是關(guān)注點驅(qū)動開發(fā),或者說規(guī)則驅(qū)動開發(fā)。我要實現(xiàn)一個關(guān)注點/規(guī)則,我就先一條用例來驗證這個關(guān)注點/規(guī)則,然后去完成這個關(guān)注點/規(guī)則的代碼。如果按照這個思路去思考,我每次實現(xiàn)一個關(guān)注點/規(guī)則,我先寫用例后寫代碼,或者先寫代碼再寫用例。每次都是圍繞著一個關(guān)注點/規(guī)則,是否先后順序就顯得不那么重要了。關(guān)鍵是每次聚焦于一個關(guān)注點/規(guī)則,有測試用例保證這個關(guān)注點/規(guī)則的準(zhǔn)確性。那么就可以放心的去實現(xiàn)下一個關(guān)注點/規(guī)則,并且保證整個功能的準(zhǔn)確了。
????以上是我對于TDD的最新理解和思考。各位看過后是否也對TDD也有了新的理解了呢?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,183評論 25 708
  • 本文結(jié)構(gòu): 什么是 TDD 為什么要 TDD 怎么 TDD FAQ 學(xué)習(xí)路徑 延伸閱讀 什么是 TDD TDD 有...
    李浪溪_WaterLee閱讀 76,810評論 16 168
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程、活動和任務(wù)的結(jié)構(gòu)性框架。軟件項目的開發(fā)包括:需求、設(shè)...
    宇文臭臭閱讀 6,877評論 5 101
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程、活動和任務(wù)的結(jié)構(gòu)性框架。軟件項目的開發(fā)包括:需求、設(shè)...
    Mr希靈閱讀 22,409評論 7 278
  • JS獨一無二之處在于任何東西都不是神圣不可侵犯的。 11.1 什么是你的 如果你的代碼沒有創(chuàng)建這些對象,不要修改他...
    __越過山丘__閱讀 524評論 0 0

友情鏈接更多精彩內(nèi)容