当我测试我的应用程序中的一些线程功能时,我遇到了数据库锁定这个问题 - 数据库锁定在一个线程上,然后所有其他线程死锁。由于我的代码中没有明确的事务,我不能手动保护和释放。
我在某处看到,TestCase中的灯具利用隐式(隐含到MY代码)事务来清除测试之间的数据库,但是如果对于Factory Girl来说也是如此,我找不到任何地方。
是否有人知道它是否属实,如果有,是否有办法将其关闭以进行特定测试,而不是所有测试?
提前感谢!
答案 0 :(得分:2)
FactoryGirl只需获取您的模型,设置属性,并在该模型上调用#save。我想你只需要改变一个设置。使用RSpec,您的spec_helper.rb文件中应该有一行:
config.use_transactional_fixtures = true
此配置发送到Rails测试配置。然后在#setup_fixtures方法中使用它。
关于Rails的文档transactional fixtures
HTH