And*_*vey 25 rspec ruby-on-rails database-cleaner ruby-on-rails-5
从我读过的关于Rails 5.1新系统规范的所有内容中,我的理解是Rails现在在内部处理数据库事务.
来自Rspec的博客:"[之前]您的测试和您的测试代码无法共享数据库事务,因此您无法使用RSpec的内置机制来回滚数据库更改,而是需要像数据库更清洁的gem.使用系统测试,Rails团队已经做了艰苦的工作以确保不是这种情况,因此您可以安全地使用RSpec的机制,而无需额外的宝石."
我的经历不同:
rails_helper.rb.JS测试现在由于validates uniqueness错误而失败.非JS测试通过.我的测试非常简单.
let(:subject) { page }
let(:user) { create :user, name: "TestUser" }
it "displays the user page", :js do
visit user_path(user)
it is_expected.to have_content "TestUser"
end
Run Code Online (Sandbox Code Playgroud)
数据库清理器禁用,:js => true我得到user named TestUser already exists.随着:js => false测试通过.
系统测试和rspec的当前情况如何?Rails是否在内部处理数据库事务,还是仍需要数据库清理程序?有没有人遇到这个,或者可以指向我相关信息?
mov*_*son 28
您不需要DatabaseCleaner gem.以下是您需要的步骤的快速摘要:
capybara-seleniumdatabase_cleanerselenium-webdriver根据Noel Rappin的这篇文章设置一个文件.rails_helper全程替换config.use_transactional_fixtures = true.有关如何管理交换机的更多详细信息,请参阅此提交.这是一个麻烦,但希望现在5.1.5修复了ActionDispatch :: SystemTesting :: Server问题(我不得不在5.1.4中修补文件,但你现在不必修改).
| 归档时间: |
|
| 查看次数: |
4939 次 |
| 最近记录: |