factory_girl黄瓜帮手很酷。我喜欢这个有用:
Given the following users exist:
| Name | Email |
| Alan | alan@example.com |
| Bob | bob@example.com |
但我无法弄清楚如何在步骤定义中调用它们。例如:
Given /the usual users exist/ do
step "the following users exist:
| Name | Email |
| Alan | alan@example.com |
| Bob | bob@example.com |"
end
...抛出Your block takes 1 argument, but the Regexp matched 0 arguments. (Cucumber::ArityMismatchError)
。
在步骤定义中使用step
将多行参数传递给另一个步骤的正确方法是什么?
修改
源代码总是很方便。我发现step
的签名是def step(name, multiline_argument=nil)
。暗示。可悲的是,
step "the following users exist", "
| Name | Email |
| Alan | alan@example.com |
| Bob | bob@example.com |"
也因undefined method 'hashes' for #<Cucumber::Ast::DocString:0xa9bf6f4> (NoMethodError)
而失败。我仍然想知道它应该如何运作。
然而,有一线希望。我找到了另一个函数steps
,它是def steps(steps_text)
,并且有效。见答案。
答案 0 :(得分:-1)
这不是我想要的,但阅读源代码后会发现以下情况:
Given /the usual users exist/ do
steps "Given the following users exist:
| Name | Email |
| Alan | alan@example.com |
| Bob | bob@example.com |"
end