2015-05-28 152 views
0

我的主要rails项目我已经安装了一个通用代码的引擎,可以执行常见的任务,如货币转换。Rails引擎-RSpec测试

我可以引用该方法在这个普通发动机是这样的:

MyCommon::CurrencyHelper.convert_to_currency 

这正常项目的代码,但似乎并没有工作,当我改变RSpec的测试指向常用方法。

测试失败,因为它无法找到的常用方法:

NoMethodError: undefined method `convert_to_currency' for MyCommon::CurrencyHelper:Module 
./spec/helpers/application_helper_spec.rb:211:in `block (3 levels) in <top (required)>' 

我需要做点别的?

+0

这是可能的:

因此,例如,Stuff::BookingSlot.book_a_slot!(其中Stuff是引擎)会是这样的测试? – user3437721

回答

0

如果通过“我将RSpec测试更改为指向常用方法”,则表示您正在从engines/my_common目录(engine/my_common/spec中的引擎测试)运行RSpec测试,那么您可以找到/在您的测试中参考您的convert_to_currency方法,如CurrencyHelper.convert_to_currency

it 'book_a_slot! marks a slot as unavailable when a host is available' do 
    ai = FactoryGirl.create(:booking_slot, available: false, host_id: 1) 
    ai2 = ai.clone 
    ai2.update_attributes(available: true, host_id: 2) 
    BookingSlot.book_a_slot! 
    expect(ai2.reload.available).to eq false 
end