我正在运行 Rails 3.2.8 并使用 MinitTest 规范进行测试。我有自动测试管理我的测试套件,除了一件事外,一切都很好。我有一个由 ActiveRecord 和 MySQL 管理的联系人表和一个没有数据库表的 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
更多的是演示。有任何想法吗?