在TypeScript项目中进行BDD测试_第1页
在TypeScript项目中进行BDD测试_第2页
在TypeScript项目中进行BDD测试_第3页
在TypeScript项目中进行BDD测试_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第在TypeScript项目中进行BDD测试目录什么是BDDGherkin语法给TypeScript项目配置BDD测试框架Cucumber.js

什么是BDD

BDD(Behavior-DrivenDesign)是软件团队的一种工作方式,通过以下方式缩小业务人员和技术人员之间的差距:

鼓励跨角色协作,建立对待解决问题的共同理解以快速、小迭代的方式工作,以增加反馈和价值流生成系统文档,自动对照系统行为进行检查

我们通过将协作工作的重点放在具体的、真实的例子上来实现这一点,这些例子说明了我们希望系统如何运行。我们用这些例子来指导我们在持续合作的过程中从概念到实施。

Gherkin语法

BDD特性(Feature)描述采用Gherkin语法。Gherkin使用一组特殊的关键字为可执行规范提供结构和意义。每个关键词都被翻译成多种语言;在本参考资料中,我们将使用英语。

Cucumber是流行的BDD测试框架,支持各种平台,其文档中的大多数行都以一个关键字开头。

注释仅允许出现在新行的开头,即要素文件中的任何位置。它们以零个或多个空格开头,后跟散列符号(#)和一些文本。(Cucumber目前不支持区块注释。)

空格或制表符可用于缩进。建议的缩进级别为两个空格。下面是一个例子:

Feature:Guesstheword

#Thefirstexamplehastwosteps

Scenario:Makerstartsagame

WhentheMakerstartsagame

ThentheMakerwaitsforaBreakertojoin

#Thesecondexamplehasthreesteps

Scenario:Breakerjoinsagame

GiventheMakerhasstartedagamewiththeword"silky"

WhentheBreakerjoinstheMaker'sgame

ThentheBreakermustguessawordwith5characters

Gherkin语法具体可以参考GherkinReference-CucumberDocumentation

给TypeScript项目配置BDD测试框架Cucumber.js

通过命令yarnadd-D@cucumber/cucumberchai安装BDD测试框架Cucumber.js和断言(Assert)框架chai。

创建目录features,在目录下创建文件bank-account.feature,内容如下:

#features/bank-account.feature

Feature:BankAccount

Scenario:Storesmoney

GivenAbankaccountwithstartingbalanceof$100

When$100isdeposited

ThenThebankaccountbalanceshouldbe$200

此文档描述了存款场景,银行存款账户有100美金,存入100美金,则账户应该有200美金。

创建step-definitions\bank-account.steps.ts

const{Given,Then,When}=require('@cucumber/cucumber');

const{assert}=require('chai');

letaccountBalance=0;

Given('Abankaccountwithstartingbalanceof${int}',function(amount){

accountBalance=amount;

When('${int}isdeposited',function(amount){

accountBalance=Number(accountBalance)+Number(amount);

Then('Thebankaccountbalanceshouldbe${int}',function(expectedAmount){

assert.equal(accountBalance,expectedAmount);

我们需要创建与之对应的测试代码,代码将通过类型与特性文件中输入和输出验证进行映射,其中Given对应的方法将获得100美金初始账户金额的映射,传给accountBalance。在When对应的方法中,amount测试会获得存入100美金的金额映射。最后,在Then对应的方法中expectedAmount会映射到200美金,用来验证最后是否与accountBalance相等,如果相等断言正常返回,否则BDD判断测试Case失败。

我们可以通过命令

yarncucumber-jsfeatures\**\*.feature-rstep-definitions\**\*.js

运行测试。

要想完成自动化配置,可以在工程根目录下创建文件cucumber.js,内容如下:

//cucumber.js

letcommon=[

'features/**/*.feature',//Specifyourfeaturefiles

'--requirestep-definitions/**/*.js',//Loadstepdefinitions

'--formatprogress-bar',//Loadcustomformatter

].join('');

module.exports={

default:common

再次执行命令yarncucumber-js,通过cucumber.js文件中的配置项,会自动找到feature文件和步骤定义脚本文件,完成BDD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论