2

如何创建步骤来处理这个嵌套的黄瓜表?

  Scenario Outline: Sign Up
    Given I am on the <language> site
    And I am on the home page
    When I follow "<register>"
    And I fill in the following:
      | <fname> | John |
      | <lname> | Doe  |
    And I check "paintball"
    And I fill in the following within Emergency Contact:
      | <ename>   | Jane Doe   |
      | <enumber> | 4161111111 |
    Then I should see "John Doe"
    Examples:
      | language | register  | fname         | lname     | ename | enumber  |
      | en       | Register  | First Name    | Last Name | Name  | Number   |
      | pt       | Registrar | Primeiro Nome | Sobrenome | Nome  | Telefone |

黄瓜要求我实施的步骤是

When /^ I fill in "(.*?)" with "(.*?)" $/ do |arg1, arg2, table|
  # table is a Cucumber::Ast::Table
  pending # express the regexp above with the code you wish you had
end

但是当我实现它时,这会导致一个arity mismatch error。

Your block takes 3 arguments, but the Regexp matched 2 arguments.
(Cucumber::ArityMismatchError)

这是意料之中的。在解析特征文件直到结束之前,黄瓜看到特征有一个嵌套表。由于没有对此的步骤定义,因此它要求一个。但是在解析整个文件之后,Gherkin 会将功能末尾的表格转换为单独的占位符,从而消除对最佳表格的需求(或者我认为这是可行的)。

但是,如果我When使用进入范围的两个参数来实现前一个子句,我会得到一个--guess选项无法解决的歧义错误。

我被困在这条路上太久了。任何帮助表示赞赏。

4

0 回答 0