2012-06-03 16 views
1

我幾乎不熟悉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

我感謝您的幫助,關於如何正確地設置它。提前致謝。

山姆

+0

嗨!你會介意將這個問題發佈到NullDB github項目嗎?維護團隊可能可以幫助你。謝謝! – Avdi

回答

1

我有類似的問題(但使用MINITEST和ActiveRecord的獨立軌)。我嘗試了你提到的所有相同的東西。原來我只是在使用rubygems中的任何東西。它看起來像更新我的Gemfile直接拉從GitHub解決了這個問題:

group :development, :test do 
    gem 'activerecord-nulldb-adapter', :git => 'git://github.com/nulldb/nulldb.git' 
end 

你會在更新後再次想bundle install

+0

* nulldb *有沒有其他選擇? – schmijos

相關問題