行为驱动开发(BDD)实践示例

Posted 编程玩家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了行为驱动开发(BDD)实践示例相关的知识,希望对你有一定的参考价值。

引言

  BDD是对TDD理念的扩展。BDD强调有利害关系的技术团体和非技术团队都要参与到软件开发过程中。可以把它看成一种强调团体间合作的敏捷方法。大多数采用某种敏捷方法的团队最终都会遵循BDD的许多原则。在编写单元测试的时候,尽量使用BDD风格为测试命名。BDD风格强调使用完整的、描述性的、便于业务用户理解的名称或术语,避免使用技术术语。BDD希望类、方法和变量的名称尽可能地反映日常用语。

 技术分享

 

一、开发环境和工具

   1.1   Visual Studio 2013

  1.2   Resharp 10.0 或以上版本

  1.3   SpecFlow

  Visual Studio菜单中工具->扩展和更新。

  技术分享

  Nuget

  技术分享

 

二、需求

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

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

 

三、代码结构

  技术分享

 

 

四、添加情景或功能文件

技术分享

技术分享

修改情景

技术分享

 

五、编写测试代码

技术分享

 

 

六、运行测试代码

技术分享

 建议先编译代码再运行。

 测试理所当然的失败了,因为还没有实现功能。

技术分享

七、编写代码实现功能

技术分享

测试通过

技术分享

 

以类似的方式实现解密的需求。

 

八、添加需求

输入空字符串时,用Des加密,应返回空字符串。

输入null时,用Des的加密,应抛出ArgumentNullException。

 

九、添加新的情景

技术分享

 

技术分享

 

十、编写新的测试代码

技术分享

 

技术分享

十一、再次运行测试代码

技术分享

 

技术分享

加密空字符串时,没有返回空字符串,不符合预期。

加密null时,抛出了ArgumentNullException,符合预期。

 

十二、调整代码使加密空字符串满足需求

技术分享

 

技术分享

 

十三、源码

https://github.com/ErikXu/SimpleBDD

 

十四、本人Github

https://github.com/ErikXu

最近想把自己的Github经营起来,欢迎大家多交流。

以上是关于行为驱动开发(BDD)实践示例的主要内容,如果未能解决你的问题,请参考以下文章

行为驱动开发(BDD) - 深入了解

BDD介绍

哪些行为驱动开发 (BDD) 工具/框架可用于 Microsoft Stack? [关闭]

一个简单的用于JavaScript的BDD(行为驱动开发)库。

JavaScript 适用于JavaScript的简单BDD(行为驱动开发)库。

BDD框架之Cucumber初探