如何创建步骤来处理这个嵌套的黄瓜表?
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
选项无法解决的歧义错误。
我被困在这条路上太久了。任何帮助表示赞赏。