【问题标题】:MiniTest ruby class queries return nilMiniTest ruby​​ 类查询返回 nil
【发布时间】:2012-10-23 11:29:43
【问题描述】:

我正在运行 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

更多的是演示。有什么想法吗?

【问题讨论】:

  • 您在数据库配置文件中设置了测试环境吗?听起来你的开发设置很好
  • 你们有样品测试吗?你设置好你的灯具了吗?
  • 您是在使用 minitest-rails 还是在 Rails 中推出了自己的 minitest 支持?
  • @yeaslayer 您的模型无法加载的原因有很多。您可以发布您的test_helper.rb 文件吗?
  • @yeaslayer 给我发一封电子邮件,这样我就可以设置一个远程配对来帮助您调试。

标签: ruby ruby-on-rails-3 autotest minitest


【解决方案1】:

原来测试数据库没有从开发中克隆数据!多哈。感谢你们两个的帮助;你把我推向了正确的方向。 @Blowmage 甚至提出远程调试我的问题。真是牛逼啊!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多