在Rails中进行RSpec测试和304 HTTP状态代码

| 使用Devise进行身份验证。在具有以下功能的控制器上:
before_filter authenticate_user!, :except => [ :index, :show ]
即使在登录后的浏览器中,经过身份验证的操作也总是显示
304 Not Modified
状态代码,而不是
200 OK
。视图呈现和工作正常。 它阻止了我的测试通过:
describe \'GET index\' do
  it \'should be successful\' do
    get \'index\'
    response.should be_success  # Fails due to 304 status code
  end
end
我本来以为是控制器的错,但是除了
before_filter
decent_exposure
以外,控制器再也没有比这更常见了。 这个问题的根源可能是什么?     
已邀请:
六英镑是件好事。在这种情况下,即使可能给您的某些测试带来麻烦,这也是预期的(和期望的)。 “ 6”表示您的Web服务器和客户端正在以允许缓存Web服务器响应的方式进行通信。 我对Rails并不完全熟悉,但是我怀疑有一个内置的机制可以缓存您的响应。这是有关缓存的Rails文章: http://guides.rubyonrails.org/caching_with_rails.html 这看起来像是一种在Controller / Action级别上禁用缓存的方法(忽略有关iframe的部分……这也不是最好的方法): http://arjunghosh.wordpress.com/2008/04/29/how-to-force-the-browser-to-not-cache-in-rails/     
测试失败,因为我将Devise用于可确认模块的身份验证,并且未使用已确认用户。 在出厂时设置“ 8”属性后,所有测试均通过。     

要回复问题请先登录注册