我无法使用CSV格式进行RSpec测试。
我的控制器有一个before_filter,用于验证当前用户(设计)。它适用于此代码 get:index:format => :html 但是,当我需要测试我的 get:index:format => :csv 路由,它返回401而不是重定向。这是正确的,身份验证仍然有效,但它没有重定向。
为什么控制器在点击 http://localhost.com/rooms.csv 时不会将未经授权的人重定向到登录页面,但如果用户点击 http://localhost.com/rooms则会正确重定向
class RoomsController < ApplicationController
before_action :authenticate_user!
def index
respond_to do |format|
format.html do
@rooms = current_user.rooms
end
format.csv do
# all the stuff to create a CSV
end
end
end
describe 'GET index format CSV' do
let(:patrick){ Fabricate(:user) }
before { sign_in :user, patrick; patrick.confirm;}
it_behaves_like "requires sign in" do
let(:action) { get :index, :format => :csv }
end
end
Failure/Error: expect(response).to redirect_to new_user_session_path
Expected response to be a <redirect>, but was <401>