TDD與VTDD系列 四 簡單例項演示TDD過程

2021-08-25 06:11:58 字數 889 閱讀 5732

假如要編寫乙個cmath類,其中有乙個方法abs(),原形如下:

class cmath

;一般的程式設計習慣是直接寫**,然後除錯,至於測試,則以後再說。tdd要求,在未編寫測試**前不能寫任何產品**。

這裡使用的測試框架是cppunit,用例**使用本系列的一和二介紹的格式,為了減少篇幅,只列出關鍵**,cppunit的使用及輔助**的編寫方法請參閱本系列的一和二。

首先編寫剛好會導致錯誤(包括編譯錯誤)的測試**,定義乙個測試類:

class testmath : public cppunit::testcase

;由於類cmath不存在,產生編譯錯誤。編寫cmath類定義,使編譯通過:

class cmath

;編寫函式abs()的測試函式,只建立乙個用例:

void testmath::testabs()

由於cmath::abs()不存在,產生編譯錯誤。編寫cmath::abs(),這時可以先寫乙個空函式,有返回值的隨便寫乙個返回值,使編譯通過就行了:

int cmath::abs(int arg)

執行測試,當然測試是失敗的。編寫函式**,使測試通過:

int cmath::abs(int arg)

測試通過,為測試函式增加乙個用例:

void testmath::testabs()

測試失敗,繼續編寫cmath::abs()的**:

int cmath::abs(int arg)

測試通過。再增加乙個用例,引數為0,測試也可以通過,不必修改產品**。當所有的功能點都已經編寫了測試**,並測試成功後,表示**的功能已經完整實現,這時應該閱讀和完善**,例如,改進**結構、修改不合適的變數名、增加必要的注釋、改進效能低下的計算過程、刪除多餘的**行,完成重構後,再次執行測試。

MinGW 安裝與簡單例項

基本上都是按提示的點選下一步操作 接下來修改一下安裝的目錄,最好像下面一樣,d盤根目錄下建mingw資料夾 到了最後一步的操作,點 basic 在右側的所有專案都右鍵點選 mark for installation 勾選上 上一步完成後,會提示關閉的,點一下 close 這一步很重要,因為需要告訴執...

Docker系列 exec與attach(四)

不論是開發者是運維人員,都經常有需要進入容器的訴求。目前看,主要的方法不外乎以下幾種 1.使用ssh登陸進容器 2.使用nsenter nsinit等第三方工具 3.使用docker本身提供的工具 方法1需要在容器中啟動sshd,存在開銷和攻擊面增大的問題。同時也違反了docker所倡導 的乙個容器...

RESTful的簡單介紹與例項

restful的概念 一種軟體架構風格,設計風格而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和伺服器互動類的軟體。基於這個風格設計的軟體可以更簡潔,更有層次,更易於實現快取等機制。該理念是由roy thomas fielding在他2000年的博士 中提出的。例項 首先需要匯入所需...