1

是否有可能在運行示例之前告訴rspec重新啓動Rails?我構建了一個掛鉤到Rails初始化過程的引擎,用戶可以在初始化器中進行一些配置更改,這些更改會影響Rails和引擎的配置。我希望能夠模擬這些配置更改,重新啓動rails並測試結果。如何在示例運行之前告訴RSpec重新啓動Rails?

+0

見下文。雖然不是一個實際的答案,但我希望它能幫助你達成解決方案。如果您有任何問題,請添加關於您嘗試的更多詳細信息。 –

回答

1

我還沒有完成這項壯舉,但作爲最佳實踐,我認爲您的引擎測試應該是引擎的一部分,並且應該具有最小的依賴關係。

我見過,相信你應該嘗試,並結合一些方法:

  1. 模擬一個minimal parent rails app來測試你的引擎。
  2. 撰寫multiple dummy apps to test with
  3. 代替加載整個導軌應用程序,您可以在smaller partsgaining in setup time之間split spec_helper and rails_helper。您可以編寫custom rake tasks to switch environment before spawning a new test thread
  4. 您也可以在運行時覆蓋反映在您的測試中的配置值(加上:使用dependency injection!)。
  5. 如果您的初始化程序足夠複雜,可以使用extract it in a testable helperwire it up in your test initializers
  6. 此外,似乎有一個寶石:Combustion
+0

謝謝你的答案。這裏有一些很棒的建議。 – CodeSmith

相關問題