类似于此处描述的问题: http://rpheath.com/posts/411-how-to-use-factory-girl-with-rspec
简而言之(缩短的代码):
规范助手:
config.use_transactional_fixtures = true
config.use_instantiated_fixtures = false
工厂.rb:
Factory.define :state do
f.name "NY"
end
在我的规范中
before(:each) do
@static_model = Factory(:state) # with validate uniqueness of state name
end
错误:
duplicate entry name "NY" etc.
问题: rspec 不应该在每个规范示例之前清除数据库,从而不会引发重复输入错误吗?
最佳答案
我认为不对的事情:
- 您是否使用
rake spec
来运行您的测试套件:从头开始构建数据库(以确保没有任何问题) - 您是否在任何地方使用
before (:all)
?因为无论您在before :all
中创建什么,都应该在after :all
中再次删除,否则它会继续存在。
关于ruby-on-rails - factory_girl + rspec 似乎不会在每个示例后回滚更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3333743/