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

しかし、実装すると、アリティの不一致エラーが発生します。

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

これは予期されることです。フィーチャ ファイルを最後まで解析する前に、cucumber はフィーチャにネストされたテーブルがあることを確認します。これにはステップ定義がないので、それを要求します。しかし、ファイル全体を解析した後、Gherkin は機能の最後にあるテーブルを個々のプレースホルダーに変換し、それによって最高のテーブルの必要性を無効にします (または、これはうまくいくと思います)。

Whenただし、スコープに入る 2 つの引数を使用して前の句を実装すると、--guessオプションが役に立たないあいまいなエラーが発生します。

私はあまりにも長い間この方法で立ち往生しています。どんな助けでも大歓迎です。

4

0 に答える 0