我正在尝试学习如何使用 Cucumber 并使用以下场景创建步骤(我有一个名为“Vegetable”的模型,并且我添加了一个名为“color”的新属性):
Scenario: add color to existing vegetable
When I go to the edit page for "Potato"
And I fill in "Color" with "Brown"
And I press "Update Vegetable Info"
Then the color of "Potato" should be "Brown"
我目前正在使用“训练轮”,所以我有一个网络步骤(web_steps.rb):
When /^(?:|I )go to (.+)?/ do |page_name|
visit path_to(page_name)
end
现在我明白了它是如何与简单的页面导航一起工作的,例如“当我转到蔬菜主页时”。我所要做的就是添加paths.rb的路径:
When /^the vegetable home page/
'/vegetables'
但是,对于上面的示例,我需要使用特定的蔬菜“/vegetables/1”(Potato url)进入特定路径。
我不知道该怎么做,所以我尝试创建自己的步骤:
When /I go to the edit page for "(.*)"/ do |vegetable_name|
flunk "Unimplemented"
end
但我得到了错误:
Ambiguous match of "I go to the edit page for "Potato"":
features/step_definitions/vegetable_steps.rb:15:in `/go to the edit page for "(.*)"/'
features/step_definitions/web_steps.rb:48:in `/^(?:|I )go to (.+)$/'
You can run again with --guess to make Cucumber be more smart about it
(Cucumber::Ambiguous)
这是我应该这样做的吗?还是我只是使用 web_steps “转到”步骤并以某种方式在 paths.rb 文件中提供 id?在阅读了各种 Cucumber 教程数小时后,我只是想弄清楚如何开始这个。