使用Protactor+Cucumber搭建BDD测试框架(3)

Protactor是 AngularJS 团队构建的一个端对端的测试运行工具,用来模拟用户交互,验证Angular应用的运行状况。
Cucumber是一款支持行为驱动开发(BDD)的自动化测试工具。

本系列文章一共分为三篇:

  • 如何安装配置Protactor的运行环境
  • 如何运行Protactor
  • 如何在Protactor中引入Cucumber

本文为第三部分:如何在Protactor中引入Cucumber

上一篇文章中我们已经在package.json中写入了cucumber依赖库,在执行 npm install 之后,cucumber就已经下载好了,接下来要做的是修改conf.js,请参考下图:

使用Protactor+Cucumber搭建BDD测试框架(3)_第1张图片

去年我搭这个框架的时候,如果要引入Cucumber,只需要将framework设置为cucumber即可。新版本得Protractor做了更改,此处应设置为custom,并且增加frameworkPath这一项。

下面我们以在亚马逊上搜索一本书为例子来编写featrue和实现步骤:
新建一个featrue文件,例如amazonTest.feature
Feature: Search book Scenario: Search a book Given I open Amazon website When I search book "Agile Estimating and Planning" Then I should see the book "Agile Estimating and Planning" in search result
再创建相应的实现步骤amazonTestSteps.js
var testAmazonWrapper = function(){ this.Given(/^I open Amazon website$/, function(next) { next(); }); this.When(/^I search book "([^"]*)"$/, function(book, next) { next(); }); this.Then(/^I should see the book "([^"]*)" in search result$/, function(book,next) { next(); }); }; module.exports = testAmazonWrapper;
最后执行Protractor conf.js运行一下,运行结果如下:

使用Protactor+Cucumber搭建BDD测试框架(3)_第2张图片


写在后面的话
请允许我再唠叨两句题外话,在引入Cucumber之前,请思考一下是否有必要使用Cucumber。众所周知,Cucumber是为了实现BDD时采用的工具,也就是说,只有我们在做BDD的时候,才需要考虑使用Cucumber。如果是为了让测试看起来高大上,看起来很有技术含量,而去盲目引入Cucumber,反而会增加编写测试的工作量,写出来的Feature也没有起到应有的作用。唠叨完毕。

你可能感兴趣的:(使用Protactor+Cucumber搭建BDD测试框架(3))