我有一个步骤定义:
Then(/^I should see the total price of the products$/) do
# assumes all existing products are in the cart
total = Product.find(:all).inject { |sum, p| sum + p.price }
page.find(".total").should have_content number_to_currency(total)
end
这会引发undefined method 'number_to_currency' for #<Cucumber::Rails::World:0xbef8d18> (NoMethodError)
我可以通过模拟number_to_currency
帮助器的行为来模拟“total”,但我宁愿重用Rails中的帮助器,因为在这一步中我对格式化不感兴趣,只是计算和渲染总数。
如何在Capybara中包含NumberHelper或任何视图助手以便从步骤定义进行访问?
答案 0 :(得分:5)
我在这里测试帮助黄瓜的方式:
您可以在支持文件夹下创建文件world.rb(或任何您想要的名称)。在我的world.rb中我定义如下:
module Helper
include ProjectHelper
include ProductBacklogHelper
include ApplicationHelper
include Capybara::DSL
include Prickle::Capybara
end #end Module
World(Helper)
您应该包含具有&#34; number_to_currency&#34;的帮助文件。功能在world.rb
我希望这会对你有所帮助