Cucumber-JS 中的可选参数

时间:2021-06-07 15:10:48

标签: javascript optional-parameters gherkin cucumberjs

您好,我正在使用 Cucumber-js,考虑到参数是可选的,我希望只有一个步骤可重复用于多个场景。

feature file:

      Scenario: with no parameters
        Given I provide "0" parametes:
        When anything
        Then anithing
      
      Scenario: with 1 parameters
        Given I provide "1" parametes:"parameter1"
        When anything
        Then anithing
        
      Scenario: with 2 parameters
        Given I provide "2" parametes:"parameter1", "parameter2"
        When anything
        Then anithing

我只想为 3 个场景定义一个步骤。我是这样写的,但是这个步骤定义只对“有 2 个参数”的场景有效。

JS 中的步骤定义文件:

Given(/^I provide "([^"]*)" parametes:"([^"]*)", "([^"]*)"$/, function (optionalParam1, optionalParam2) {

});

或者像这样:

Given('I provide {string} parametes:{string}, {string}', function (paramQuantity, optionalParam1, optionalParam2) {

});

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

据我所知,最好的方法是在您的代码中而不是在功能文件中。

您可以遵循特征文件中的格式并在步骤定义中对其进行处理。

特征文件:

  Scenario: with no parameters
    Given I provide " " as parameters
    When anything
    Then anything
  
  Scenario: with 1 parameter
    Given I provide "parameter1" as parameters
    When anything
    Then anything
    
  Scenario: with 2 parameters
    Given I provide "parameter1,parameter2" as parameters
    When anything
    Then anything

步骤定义:

Given(/^I provide "([^"]*)" parametes:"([^"]*)", "([^"]*)"$/, function (optionalParam1, optionalParam2) {});