Dan*_*ans 7 ruby rspec ruby-on-rails devise warden
我有一个使用rails 3.2和Devise的应用程序.我有一个使用rspec和Capybara的请求测试套件.
我试图在我的登录帮助中转而使用Warden测试助手,而不是让Capybara填写登录表单并提交.由于我的测试套件的大小和复杂性,这导致我的测试运行时节省超过一分半.
在我的配置是:
RSpec.configure do |config|
config.include Warden::Test::Helpers, :type => :request
config.after :each do
Warden.test_reset!
end
end
Run Code Online (Sandbox Code Playgroud)
并在上下文中:
let!(:current_user) { FactoryGirl.create(:user) }
background do
login_as(current_user, :scope => :user)
end
Run Code Online (Sandbox Code Playgroud)
但是,当使用这些配置运行测试套件时,几乎每个测试运行都会有一个不同的随机失败的请求规范,因为页面呈现就好像用户没有登录一样.(具体来说,由user_signed_in?
条件控制的链接)
我的问题:是否有其他人遇到过这种不可靠性以及如何减轻这种不可靠性?