4

我有一个步骤定义

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助手的行为来模拟“总数”,但我宁愿重新使用 Rails 中的助手,因为在这一步中我对格式不感兴趣,只是计算和呈现总数。

如何在 capybara 中包含 NumberHelper 或任何视图助手以从步骤定义中访问?

4

1 回答 1

5

我在这里将助手包含在我的黄瓜测试中的方式:

  • 您在 support 文件夹下创建一个文件 world.rb(或您想要的任何名称)。在我的 world.rb 中,我这样定义:

    module Helper
    
       include ProjectHelper
       include ProductBacklogHelper
       include ApplicationHelper
       include Capybara::DSL
       include Prickle::Capybara 
    
    end #end Module  
    World(Helper)
    

您应该在 world.rb 中包含具有“number_to_currency”功能的帮助文件

我希望这能帮到您

于 2014-05-09T02:03:43.557 回答