如何在Capybara步骤中包含Rails视图助手

时间:2013-04-16 10:38:27

标签: capybara view-helpers

我有一个步骤定义

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或任何视图助手以便从步骤定义进行访问?

1 个答案:

答案 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

我希望这会对你有所帮助