Rspec-rails似乎找不到我的模型

时间:2010-04-26 07:23:39

标签: ruby-on-rails unit-testing rspec

我正在尝试rspec,并且当它似乎没有加载我知道存在的db记录时立即撞墙。这是我相当简单的规范(还没有测试)。

require File.expand_path(File.dirname(__FILE__) + '../spec_helper')

describe SomeModel do

  before :each do
    @user1 = User.find(1)
    @user2 = User.find(2)
  end

  it "should do something fancy"
end

我收到一个ActiveRecord::RecordNotFound异常,说它找不到User w / ID = 1或ID = 2,我知道这个事实存在。我将测试和开发数据库都设置为指向database.yml中的相同模式,因此这不应该是数据库混合。安装gems(rspec,rspec-rails)和gem.config环境.rb和test.rb后,我也运行了script/generate rspec。知道我错过了什么吗?感谢。

修改

似乎我用rake spec:models运行了测试,它清空了数据库,因此没有找到任何记录。当我使用% spec spec/models/some_model_spec.rb时,一切都按预期工作。

1 个答案:

答案 0 :(得分:2)

不应该依赖于数据库中的测试数据,因为它可能(并且经常会!)改变。其次,您不应该在同一个数据库中加入您的测试和开发数据库。测试在纯数据库上运行,而不是由您的开发工具破坏的数据库。

应该正在做的事情是以灯具的形式专门为测试设置数据,或者使用factory_girlmachinist等工具。