關於引擎開發以及使用虛擬應用程序進行測試的內容很多。如何使用RSpec針對真實應用程序開發Rails3引擎?
在我們的例子中,我們正在開發一個不是獨立實體的引擎,但它依賴於真正的Rails 3應用程序。我們仍然希望此代碼位於引擎中,而不是應用程序的一部分,因爲引擎的工作是從具有自己的表和模型映射的遺留系統導入數據,並且我們希望最終再次刪除它。
舊遺留表與新架構之間的數據映射非常複雜,我們希望TDD(使用rspec)引擎。
- 我已經關注Jose Valim's book "Crafting Rails Appliations",我正在使用enginex gem。
- 我用一個指向真實Rails 3應用的git子模塊替換了
/spec/dummy_app
。 - 我無法從引擎加載模型(未定義符號錯誤),因爲真正的應用程序的Gemfile沒有指向引擎,我也無法修改
config/application.rb
,要求引擎(這是什麼該虛擬應用程序的確如本書第15-16頁所述)。 - 我將發動機的
lib
文件夾放入加載路徑$:
的spec_helper
中,路徑可用。 - 將
require
置入spec_helper.rb
未解決問題。 - 我想知道是否有一個內部的Rails API(或一個聰明的猴子補丁)掛鉤到真正的應用程序的啓動順序,並需要引擎,而不必修改真正的應用程序的代碼(因爲它在一個子模塊)。
- 我不完全確定的另一個問題是我有2個Gemfiles(一個在引擎中,一個在應用程序中),並且當引擎處於活動狀態時,它們都應該被使用。
想法?