Rspec系统测试实例变量加载异常问题求助
Rails 老项目登录测试批量运行异常的排查与解决
环境信息
- Ruby 2.4.1
- Rails 5.0.1.rc2
- Capybara 3.6
- RSpec-Rails 3.5
- FactoryGirl 4.7
(2017年上线的老项目)
问题现象
原正常运行的登录系统测试出现以下异常:
- 批量运行3个scenario时,仅第一个测试执行成功
- 剩余测试均报错,提示
SiteCounter.find(1)不存在 - 单独运行任意测试时,全部都能通过
解决步骤
- 参考Thomas Walpole的建议优化代码:
- 将
SiteCounter的创建逻辑从FactoryGirl迁移到页面控制器中 - 把测试里的断言调整为正向断言
调整后测试可正常运行,但新增问题:使用expect(page).to have_content("Email or password fail.")时断言失败
- 将
- 最终修复:移除
layouts/application文件中的<!DOCTYPE html>标签后,断言异常问题彻底解决
内容的提问来源于stack exchange,提问作者daveasdf
相关产品推荐
相关产品推荐

