2015-05-28 199 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