行为驱动开发(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经营起来,欢迎大家多交流。

时间: 2024-10-25 22:32:20

行为驱动开发(BDD)实践示例的相关文章

行为驱动开发BDD精粹

BDD脱胎于TDD 行为驱动开发(Behavior-Driven Development,简称BDD),是在测试驱动开发(Test-Driven Development,TDD)基础上发展而来的一种软件开发方法.TDD最大的弊端,是面对一大堆的功能需求和用例时,往往会感到无从下手.另一方面,由于TDD更侧重于测试本身,因此容易忽视对业务需求的表达,最终沉溺于琐碎细节而无法自拔. BDD避免了信息丢失 与传统的软件开发方法相比,BDD的本质在于尽可能避免在需求描述.用例撰写.代码实现.测试等各环节

python的行为驱动开发(BDD)

教程一: 基于Python的行为驱动开发实战: http://python.jobbole.com/81303/ 基于Python的行为驱动开发实战 英语原文地址: http://code.tutsplus.com/tutorials/behavior-driven-development-in-python--net-26547 Python BDD自动化测试框架初探: http://lovesoo.org/python-bdd-exploration-of-the-automated-tes

领域驱动开发推荐代码示例 — Microsoft NLayerApp

简介: Microsoft NLayerApp是由微软西班牙团队出品的基于.NET 4.0的“面向领域N层分布式架构”代码示例,在codeplex上的地址是:http://microsoftnlayerapp.codeplex.com/. 架构图: 点击查看大图 代码下载:http://microsoftnlayerapp.codeplex.com/releases/view/56660 所用到的软件: - Microsoft Visual Studio 2010  - Microsoft Ex

Android驱动开发第七章

控制发光二极管 本章我们在Linux驱动开发中实践过所以也很熟悉.也做出过不同的实验结果.所以编写LED驱动: 1.测试开发板,打开电源开关 2.创建LED驱动设备文件 3.卸载LED驱动的设备文件 4.设置寄存器与初始化LED驱动 5.控制LED 6.设置LED驱动的模块参数 本章给出了LED驱动的完整代码可以借鉴 测试LED驱动,本章介绍了一些复杂的测试方法,不仅可以向LED设备文件发送字符串,还可以发送I/O控制命令. 1.编写测试I/O控制命令的通用程序 2.使用NDK测试LED驱动 3

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

行为驱动开发(BDD) - 一个快速的描述和示例 BDD表示乙 ehavior e里文e才有发展.用于描述行为的语法是Gherkin. 这个想法是尽可能自然地描述一种语言应该发生什么. 如果你熟悉单元测试,并且很容易编写单元测试,那么你熟悉它们的阅读方式.根据测试需要覆盖的程度,可以很难弄清楚它的作用,因为毕竟只是代码. 只有开发人员才能真正了解那里发生了什么. BDD以不同的方式解决问题. 让我们来隐藏代码,开始一个对话,所以现在任何人都可以阅读一个场景并了解它的测试. 举一个例子: 给定第一

BDD(行为驱动开发)

BDD的重点是通过与利益相关者的讨论取得对预期的软件行为的清醒认识.它通过用自然语言书写非程序员可读的测试用例扩展了测试驱动开发方法.行为驱动开发人员使用混合了领域中统一的语言的母语语言来描述他们的代码的目的.这让开发者得以把精力集中在代码应该怎么写,而不是技术细节上,而且也最大程度的减少了将代码编写者的技术语言与商业客户.用户.利益相关者.项目管理者等的领域语言之间来回翻译的代价. 关于如何处理需求说明与测试,不同的组织使用不同的名称,或者说是不同的定义,但他们都有一套共同的核心原则与思想,而

linux驱动开发重点关注内容--摘自《嵌入式Linux驱动模板精讲与项目实践》

本文摘自本人拙著 <嵌入式Linux驱动模板精讲与项目实践> 初步看起来Linux设备驱动开发涉及内容非常多,而须要实现驱动的设备千差万别.事实上做一段时间驱动之后回首看来主要就是下面几点: (1)对驱动进行分类.先归纳为哪个类型的驱动.归类正确再利用内核提供的子系统进行开发,往往会发现事实上非常多通用的事情内核已经帮我们做了,一个优秀的驱动project师应该最大程度上利用内核的资源.内核已经实现的毕竟稳定性强.可移植性高. (2)找到内核的提供的子系统.接下来就是要制作该子系统对该类设备提

行为驱动开发(BDD)

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

Scrum敏捷软件开发之技术实践——测试驱动开发TDD

重复无聊的定义 测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法.它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行.这有助于编写简洁可用和高质量的代码,并加速开发过程.(来源百度百科) 重复无聊的过程 测试驱动开发的基本过程如下: 快速新增一个测试(编者注:并非快速) 运行所有的测试(有时候只需要运行一个或一部分),发现新增的测试不能通过 做一些小小的改动,尽快

安卓系统移植与驱动开发概述

随着当前各种系统百花齐放,竞相发展,安卓系统占市场的份额已遥遥领先于其他系统,为使在各种设备上完美运行Android,我们可以学习基于Linux的Android驱动开发与移植,本章对Linux和Android做了一个比较系统的介绍,使我们更全面的了解Linux驱动,为我们进一步学习打下坚实的基础. 学习Android驱动开发我们首先要了解Android系统构架,它主要包括: 第一层:Linux内核 主要包括Linux的驱动程序及内存管理.进程管理.电源管理等程序.Android使用Linux2.