我有一个使用 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
在上下文中:
let!(:current_user) { FactoryGirl.create(:user) }
background do
login_as(current_user, :scope => :user)
end
但是,当使用这些配置运行测试套件时,几乎每个测试运行都有一个不同的随机失败请求规范,因为页面呈现为好像用户没有登录一样。(具体来说,由user_signed_in?
条件控制的链接)
我的问题:有没有其他人遇到过这样的不可靠性,如何缓解?