我幾乎不熟悉rails開發。我目前正在閱讀Avdi Grimm的Objects on Rails,因爲在我的Rails應用程序中擁有#SOLID設計,而不是被迫使用一些會導致混亂且無法讀取的代碼和設計的約定。如何使用rspec在rails中設置nulldb?
我想設置nulldb並將其用於測試應用程序業務邏輯的快速規格中,但無法使其正常工作。我在這裏閱讀了nulldb GitHub頁面上的安裝指南 - >https://github.com/nulldb/nulldb。我安裝了activerecord-nulldb-adapter gem並將其放入我的Gemfile中,並運行bundle install命令,以便現在完全安裝。我有一個spec_helper_lite.rb文件,我在我的快速規格中使用,所以我認爲在其中設置nulldb是個好主意。下面是我的spec_helper_lite.rb文件nulldb部分代碼:
require 'nulldb_rspec'
def setup_nulldb
schema_path = File.expand_path("../db/schema.rb", File.dirname(__FILE__))
ActiveRecord::Base.establish_connection(:adapter => :nulldb,
:schema => schema_path)
NullDB.nullify(:schema => schema_path)
end
def teardown_nulldb
NullDB.restore
end
然後我需要這個spec_helper_lite.rb在我快規格和我所說的建立和拆除nulldb方法之前和之後我的規格的方法。當我運行規格時,我會得到錯誤未初始化常量ActiveRecord :: ConnectionNotEstablished(NameError)。我嘗試了不同的方式,例如移除setup_nulldb中的establish_connection行,我會得到相同的錯誤。我甚至在我的spec_helper_lite中需要'active_record'來查看會發生什麼,然後我會爲NullDB模塊得到錯誤「undefined method nullify」,顯然該規範變得完全緩慢,因爲需要active_record。我搜索了很多關於如何設置nulldb和我看到的所有解釋關於如何設置它的方法,但它對我不起作用。我使用nulldb版本0.2.1,導軌3.0.0和rspec 2.0.1
我感謝您的幫助,關於如何正確地設置它。提前致謝。
山姆
嗨!你會介意將這個問題發佈到NullDB github項目嗎?維護團隊可能可以幫助你。謝謝! – Avdi