來複習一下前一篇提到的 TDD 步驟: 寫測試: 在寫任何產品程式之前,只先編寫最少量、剛好能運作的自動化測試 寫程式: 編寫最少量、剛好能通過的產品程式...
TDD ( Test-driven development ) 是一種寫程式的開發技巧,提倡能為開發者及程式帶來多項好處: 更好的程式結構 程式碼更簡潔...
大家好, 這次鐵人賽文章,改編成書出版了,增加了許多章節跟內容。 「Android TDD 測試驅動開發:從UnitTest、TDD到DevOps實踐」這本書是...
優秀的Unit Test 優秀的Unit Test(UT)和優秀的程式碼一樣,不外乎清楚簡潔。本書的作者,偏好在方法的命名上下重點,讓UT可以從字面就知道要測試...
踩了好多雷 才有今天這篇。以前都不寫TDD,這次剛好有機會雷死自己 這邊再講TDD,是我前面沒講的 前面沒講的 前面沒講的!! 好 前置作業: 先建立 json...
前言 今天使用 Github + Travis CI 本文開始 在 Project 根目錄新增 .travis.yml 檔案 開啟 .travis.yml...
Koa 測試何如寫? 接續上一篇 [Day 21] 動手篇 - Please give me Mocha (1) ,基本需要的 Package 都安裝好。...
本文開始前 TDD 是一個觀念,實踐後成了常聽見的 Unit Testing 等,之前我寫過一篇以 Express 為例的教學文,也再公司內外分享過,因此這篇...
針對整個系列,做個分類與整理。 補充一些筆者覺得不錯的參考資源,供讀者可以更深入的了解相關概念與技術。 這次鐵人賽,希望可以用30篇文章,來讓讀者了解TDD完整...
TDD實戰練習第一篇,介紹了: 如何從PO的描述中,定義出user story與acceptance test cases。 如何建立BDD相關的featur...
TDD實戰練習第一篇,介紹了: 如何從PO的描述中,定義出user story與acceptance test cases。 如何建立BDD相關的featur...
前面介紹完每一塊拼圖的概念之後,上一篇文章開始進入實戰演練。 實戰練習的範例,是透過一個網路銀行的範例專案,挑選了登入功能這個user story,在上一篇文章...
到上一篇文章為止,TDD所需要的每個片段都已經簡單介紹了一遍,相信各位讀者也很清楚的瞭解,筆者要表達的重點,還是一句話:一切都為了滿足使用者需求。 接下來,筆者...
前幾篇文章提到了BDD的觀念,以及在.NET solution中,簡單的介紹了如何透過SpecFlow這個工具,來幫助我們減少在驗收測試案例與開始進行TDD中間...
前兩篇文章介紹到了,為什麼需要BDD來輔助我們進行TDD,原因是需求、user story與acceptance test cases都是透過DSL來描述,這離...
前面幾篇文章,先介紹了user story,ATDD,接著提到了要透過BDD來當作ATDD與TDD之間的橋樑。 這篇文章則是要介紹一下,筆者習慣用的BDD工具:...
前面先介紹了如何透過ATDD,透過user story來定義與管理使用者需求開始,透過驗收測試案例來定義一個user story什麼時候可以視為完成。 然而us...
上篇文章簡單扼要的說明了,如何透過驗收測試案例,來輔助驗證user story是否已經完成。 也強調了驗收測試案例的基本feature,該由哪些共同協同合作撰寫...
上篇文章提到了,系統與程式碼存在的目的,就是為了滿足使用者的需求。 因為我們需要一個方式來定義與管理使用者的需求。本系列TDD的文章,則是以user story...
TDD系列文章到這邊,只是獨立介紹了測試與重構,接下來要介紹的部分,則是筆者認為TDD整個流程中,影響成敗的一環,也就是從user requirement br...
從[Day 9]開始,一直到[Day 18],我們從最初不知道從哪開始重構,到現在程式碼變得高內聚、低耦合、可擴充、可讀、可維護,而且有了相關的測試保護,不再需...
上篇文章透過簡單的重構一個function,將相同的部份抽出判斷式外,讓不同的部份影響範圍最低。因此解決了我們有著重複程式碼的問題。 更重要的是,透過這一個過程...
在上篇文章中,我們將各個物流商的物件,抽象化出來一個物流商的介面,這個介面提供了當下頁面物件所需要的功能: 計算運費 取得運費結果 取得物流商名稱 雖然頁面...
上一篇文章中,將原本散落在頁面,屬於物流商職責的部分,搬移填入到物流商的物件中,並且通過了最原始的Selenium測試,代表符合了使用者的需求。也通過了單元測試...
前兩篇文章,我們先以當下物件的角度,思考屬於自己的職責是什麼。而不屬於自己職責的部份,該委託給哪個物件來進行。並思考清楚當下物件所需要的,究竟是什麼,接著不必去...
在上一篇文章中,重構第五式:「給你錢,趕快做」中,重點在於如何站在當下物件的角度,去思考自身職責該處理的邏輯,並思考非自身職責的部分,該委託給哪一個物件來處理。...
在上一篇文章中,透過分離主詞與動詞,定義出其他的物件與對應的行為,將不屬於當下物件的職責,拆分到其他的物件上。 在拆物件的過程中,還是一再強調,我們要把關注點放...
在上一篇文章中,介紹了先透過理解程式碼,加上註解與排版後,讓我們看了程式碼心情不會再這麼不爽。 也因為抽象思考完,用自己的話在註解來描述程式碼的目的與行為,所以...
上一篇文章,介紹了重構的第一步,就是建立測試。跨出了這第一步,才能確保後面的重構動作不會影響到結果。這也是為什麼本系列文章,需要先介紹測試的技巧、目的以及方式。...