2011-01-23 43 views
2

我正在通过Railstutorial.org并遇到此问题:测试数据库在运行初始测试后没有刷新

测试数据库在运行测试后似乎没有清空。

在第6.10节中,我在user_spec.rb文件中创建了下面的行,它在第一次通过后,每次都失败。

it "should create a new instance given valid attributes" do 
    User.create!(@attr) 
end 

当我看看test.sqlite3数据库时,它显示数据库中有1个用户。如果我删除用户,则测试会通过一次,然后再次失败,说它无法创建用户,因为电子邮件不是唯一的。我查看数据库,然后记录再次出现。

看起来上面的代码创建它,但它并没有被破坏。

这里是我的Gemfile

source 'http://rubygems.org' 
gem 'rails', '3.0.3' 
gem 'sqlite3-ruby', '1.3.2', :require => 'sqlite3' 
gem 'gravatar_image_tag', '0.1.0' 

group :development do 
    gem 'rspec-rails', '2.3.0' 
    gem 'annotate-models', '1.0.4' 
end 

group :test do 
    gem 'rspec', '2.3.0' 
    gem 'webrat', '0.7.1' 
    gem 'spork', '0.8.4' 
end 

回答

2

入住./spec/spec_helper.rb,确保下面一行是存在的:

config.use_transactional_fixtures = true

+0

这完美地工作。谢谢zetetic! – kkampen

相关问题