Rails3:单元测试库不会加载灯具

时间:2010-08-18 19:41:16

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

我手动添加了一个单元测试来测试我正在构建的库。我有一些灯具在相应的型号中进行测试,没有任何问题。

测试用例继承自运行fixtures :all的ActiveSupport :: TestCase。

require 'test_helper'
require 'mylib'

class MyLibTest < ActiveSupport::TestCase

  @user = User.find(1)

  test "Setup" do
    assert_equal(@user.id, 1)
  end

end

即使user = User.find(1)在每个实际用于模型的测试中都能正常工作,但此测试会引发异常:/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0.beta4/lib/active_record/relation/finder_methods.rb:287:in 'find_one': Couldn't find User with ID=1 (ActiveRecord::RecordNotFound)

我尝试将fixtures :all移动到MyLibTest类中(在另一篇文章中建议),但没有区别。

如何让我的测试工作?

修改
我发现了什么是错的,而且它与灯具完全无关。我想在几个测试用例中使用相同的User对象,所以我在类中添加了@user = User.find ,但不在测试用例中。当我意识到这一点并尝试将其放入测试用例时,一切正常。尴尬:)

1 个答案:

答案 0 :(得分:0)

如果没有看到你的Fixtures文件是如何设置的,我不能确定到底是什么,但试试这些:

  1. 尝试将“fixtures:all”移动到test_helper.rb。
  2. 在灯具文件中,您是否在每条记录上设置“id:”?如果没有,id实际上不会简单地增量 - 它是根据灯具的名称创建的。尝试使用“User.first”而不是User.find(1)。如果你需要id为1,那么在灯具上设置“id:1”。
  3. 希望这有帮助。