2012-10-22 23 views
1

我正在運行Rails 3.2.8並使用MinitTest規範進行測試。我有自動測試來管理我的測試套件,除了一件事以外,一切都很好。我有一個由ActiveRecord與MySQL管理的聯繫人表和一個沒有數據庫表的CsvImport自定義ruby類。當我在IRB中運行應用程序時,一切都按預期工作,但是當測試運行通過測試套件時,所有位於Ruby類中的Contact.find/Contact.where/Contact.map查詢類型調用都返回nil。MiniTest ruby​​類查詢返回無

下面是一個例子:

require 'test_helper' 

class CsvRowManagerTest < MiniTest::Spec 
    describe 'import tests' do 
    let(:row) { Hash['name' => 'test'] } 
    let(:rm) { CsvRowManager.new(row) } 
    it "should return an array of stuff" do 
     rm.contacts.wont_be_nil 
    end 
    end 
end 

class CsvRowManager 
    attr_accessor :row, :contacts 

    def initialize(row) 
    @row = row 
    @contacts = Contact.all.map(&:name) #<-- returns nil 
    end 

end 

更多的示威比什麼的。有任何想法嗎?

+1

你有沒有在數據庫配置文件中設置測試環境?這聽起來像你有開發安裝好了 – Rym

+0

是的。它看起來像這樣 測試: 適配器:sqlite3 數據庫:db/test.sqlite3 – jbearden

+1

你有樣品測試嗎?你有沒有設置你的燈具? – Rym

回答

0

原來測試數據庫沒有克隆開發中的數據!衛生署。感謝你們兩位的幫助;你把我推向了正確的方向。 @Blowmage甚至提供遠程調試我的問題。什麼踢屁股哥們!