天天看點

行為驅動開發(BDD)實踐示例

引言

  BDD是對TDD理念的擴充。BDD強調有利害關系的技術團體和非技術團隊都要參與到軟體開發過程中。可以把它看成一種強調團體間合作的靈活方法。大多數采用某種靈活方法的團隊最終都會遵循BDD的許多原則。在編寫單元測試的時候,盡量使用BDD風格為測試命名。BDD風格強調使用完整的、描述性的、便于業務使用者了解的名稱或術語,避免使用技術術語。BDD希望類、方法和變量的名稱盡可能地反映日常用語。

行為驅動開發(BDD)實踐示例

一、開發環境和工具

   1.1   Visual Studio 2013

  1.2   Resharp 10.0.2 或以上版本

  1.3   SpecFlow

  Visual Studio菜單中工具->擴充和更新。

  

行為驅動開發(BDD)實踐示例

  Nuget

行為驅動開發(BDD)實踐示例

二、需求

   輸入一段明文,用Des的加密方式加密成密文。

  輸入一段密文,用Des的解密方式解密成明文。

三、代碼結構

行為驅動開發(BDD)實踐示例

四、添加情景或功能檔案

行為驅動開發(BDD)實踐示例
行為驅動開發(BDD)實踐示例

修改情景

行為驅動開發(BDD)實踐示例

五、編寫測試代碼

行為驅動開發(BDD)實踐示例

六、運作測試代碼

行為驅動開發(BDD)實踐示例

 建議先編譯代碼再運作。

 測試理所當然的失敗了,因為還沒有實作功能。

行為驅動開發(BDD)實踐示例

七、編寫代碼實作功能

行為驅動開發(BDD)實踐示例

測試通過

行為驅動開發(BDD)實踐示例

以類似的方式實作解密的需求。

八、添加需求

輸入空字元串時,用Des加密,應傳回空字元串。

輸入null時,用Des的加密,應抛出ArgumentNullException。

九、添加新的情景

行為驅動開發(BDD)實踐示例
行為驅動開發(BDD)實踐示例

十、編寫新的測試代碼

行為驅動開發(BDD)實踐示例
行為驅動開發(BDD)實踐示例

十一、再次運作測試代碼

行為驅動開發(BDD)實踐示例
行為驅動開發(BDD)實踐示例

加密空字元串時,沒有傳回空字元串,不符合預期。

加密null時,抛出了ArgumentNullException,符合預期。

十二、調整代碼使加密空字元串滿足需求

行為驅動開發(BDD)實踐示例
行為驅動開發(BDD)實踐示例

十三、源碼

https://github.com/ErikXu/SimpleBDD

十四、本人Github

https://github.com/ErikXu

最近想把自己的Github經營起來,歡迎大家多交流。

繼續閱讀