2014-07-14 54 views
3

我想用Cucumber.JS來做我的自動化測試。如果我這樣做......如何使用「And」使用cucumber.js

var sharedSteps = module.exports = function(){ 
    this.World = require("../support/world.js").World; 
    this.When(/^I click on the cart$/, function(next) { 
     this.client.click("#cartLink", function(err, res){ 
     }); 
    }); 
    ... 
} 

Scenario: Make sure clicking on the cart works 
    Given I go on the website "https://site.com/" 
    When I click on the cart 
    Then I should be on the cart page 

一切正常,但是,如果我做以下使用

var sharedSteps = module.exports = function(){ 
    this.World = require("../support/world.js").World; 
    this.And(/^I click on the cart$/, function(next) { 
     this.client.click("#cartLink", function(err, res){ 
     }); 
    }); 
    ... 
} 

Scenario: Make sure clicking on the cart works 
    Given I go on the website "https://site.com/" 
    And I click on the cart 
    Then I should be on the cart page 

我得到

TypeError: Object # has no method 'And'

那麼,什麼是正確的方式做到這一點(不用說你應該使用什麼時候,因爲我有其他的情況並不那麼簡單)

回答

2

我最終能夠在小黃瓜中使用並使用this.When

+3

'和'只用於場景中,而不是作爲步驟定義方法。在語義上,它意味着「與上一步相同的關鍵字」;從技術上講,這只是另一個步驟。事實上,你可以在你的步驟定義中使用'Given()','When()'和'Then()',Cucumber不會強制step關鍵字和step定義函數之間的匹配。 – jbpros