我的TDD實踐

2021-06-16 17:27:19 字數 1227 閱讀 3319

「我的tdd實踐」系列之unittest單元測試
寫在前面:

tdd實踐系列文章:

1.tdd概念篇

2.ci持續整合

3.svn架設篇

4.unittest單元測試

1.2 特徵:

與其他**相隔離:單元測試只測試一件事,否則應該懷疑是否是測試內容有誤。

與其他開發人員隔離:保證最小化的變數影響單元測試,也就是控制變數法。逐漸形成了模擬框架以及依賴注入框架等輔助工具。

有針對性:要做有意義的測試,保證完成那些功能或方法。

可重複:單元測試的最大優勢就是可重複,這也是持續整合的意義所在。

可**:單元測試保證的是---確定的輸入得到肯定的輸出。

2.1 單元測試框架(unittest):自從2023年tdd開始流行,框架和工具得到了迅猛的發展,這些框架允許定義測試**,控制測試的執行,還提供了乙個應用程式執行測試,並在成功完成測試套件中的每個測試後給出報告。

2.2 模擬框架(mock):為了僅測試乙個方法而不對其他發展產生影響或者被影響,產生了mock框架。通過模擬另乙個類的**來完成單元測試,同時又充分的隔離了另乙個類的部分資訊。

2.3 注入框架(inject):為了充分隔離類內部使用的物件,一般採用構造注入的方式或者屬性注入的方式,都是將外部初始化好的物件匯入進測試類,以進行隔離。

3.1 單元測試工具:

3.1.1 nunit:目前.net最流行的工具,由junit發展而來,簡單易用。 官方**

3.1.2 mstest: 也十分的強大,同時也被多種自動編譯工具所支援,在vs2010中十分方便建立以及關聯測試測試類,使用方便。

這是兩個比較主要的測試框架,nunit更新比較慢,但是開源。兩種工具語法標籤上大同小異,也都支援「setup」和「teardown」方便初始化共享物件。

3.2 模擬框架:

3.2.1 rhino mock:免費,使用簡單,功能強大。

3.2.2 type mock:使用中間語言(il)在執行時以模擬實現來代替實際實現。商業產品。模擬物件不需要從介面整合,可以模仿第三方類庫。

3.2.3 moq:社群支援,功能強大,使用簡單。moq利用了lambda表示式。語法更具描述性。

3.3 注入框架:

3.3.1 structure map:開源容器框架,能夠自動模擬容器。

3.3.2 unity:來自微軟設計與實踐群組。

3.3.3 autofac:允許不採用xml檔案的情況下進行配置。

我對TDD的實踐

上周五的討論又錯過了!真可惜。可是實在沒有辦法,最近忙的厲害。就是發表一篇blog也要趕在7 30之前,8 00監考,提前10分鐘進教室 不多說了,現在連會議記錄還沒有看完,還有寒楓天傷 wayfarer idior的文章也沒顧得上看。先把我去年的一部分教案放上來,就算對tdd的乙個補償吧。內容很簡...

TDD的簡單實踐

前言 最近有幸跟隨資深thoughtworks諮詢師熊節老師一起學習測試驅動設計,經過短暫的十幾天培訓,對測試驅動設計的基本原則 實踐模式 技巧有了一點點初步的認識。在此之前,經常自嘲我經歷的公司實踐也似乎是tdd,這種實踐往往都是由測試工程師來驅動開發者完成bug的修改,雖然也是測試來驅動開發,但...

我的TDD實踐 可測試性驅動開發(上)

tdd 測試驅動開發,test driven development 是重要的敏捷實踐之一,它的基本原理是用測試來帶動開發,先寫測試 再寫開發 最後重構。許多tdd推廣和實踐者認為,這種方式易於帶來高質量的 而如今,tdd也慢慢有了test driven design,也就是測試驅動設計的意味。也就...