Jef*_*hen 3 javascript bdd assert cucumber
我正在练习使用 cucmber.js 通过 BDD 编写一些单元测试。当我尝试使用“And”语句时。该错误表明
TypeError: And is not a function
Run Code Online (Sandbox Code Playgroud)
这是我的代码
。特征
Feature: dataTable
Scenario Outline: <a> + <b> + <c> = <answer>
Given I had number <a>
And I add another number <b>
When I add with <c>
Then I got answer <answer>
Examples:
|a|b|c|answer|
|1|2|3|6|
|10|15|25|50|
Run Code Online (Sandbox Code Playgroud)
.stepDefinition
defineSupportCode(function({Given,When,Then,And}){
let ans = 0;
Given('I had number {int}', function(input){
ans = input
})
And('I add another number {int}',function(input){
ans += input
})
When('I add with {int}',function(input){
ans += input
})
Then('I got answer {int}', function(input){
assert.equal(ans,input)
})
})
Run Code Online (Sandbox Code Playgroud)
错误消息如下:
TypeError: Add is not a function
at ... // my file location
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! test_cucumber@1.0.0 cucumber: `cucumber.js ./test/e2e/Features -r ./test/e2e/StepDefinition`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the test_cucumber@1.0.0 cucumber script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/lab1321_mac_air/.npm/_logs/2018-01-04T08_15_28_568Z-debug.log
Run Code Online (Sandbox Code Playgroud)
我想知道我是否写错了什么。谢谢!
And和But是特征文件的语法糖 - 换句话说,它们是Given,When和 的别名Then。
当您定义步骤时,您应该使用Given,When和Then来描述该步骤试图实现的目标(先决条件、操作或结果),然后如果您有多个先决条件、操作或结果,请在您的步骤中使用And或But仅功能文件。