首页 > 解决方案 > Cucumber-JS 中的可选参数

问题描述

您好,我正在使用 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) {

});

有人可以帮助我吗?

标签: javascriptoptional-parametersgherkincucumberjs

解决方案


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

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

功能文件:

  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) {});

推荐阅读