Rails 3.2.8 を実行しており、テストには MinitTest 仕様を使用しています。テストスイートを自動テストで管理していますが、1 つのことを除いてすべてがうまく機能します。MySQL を使用した ActiveRecord によって管理される Contacts テーブルと、データベース テーブルを持たない CsvImport カスタム Ruby クラスがあります。IRB でアプリケーションを実行すると、すべてが期待どおりに動作しますが、テスト スイートでテストを実行すると、Ruby クラスにあるすべての Contact.find / Contact.where / Contact.map クエリ タイプの呼び出しが nil を返します。
次に例を示します。
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
何よりもデモンストレーションです。何か案は?