我正在使用rails 4开发rails API,我想测试它.为此,我使用的是Rspec框架.
我的API有一个身份验证方法,如下所示:
class UsersController < ApplicationController # Token authentication before_action :set_user,except: [:index,:create] before_action :authenticate,:create] before_action :authenticate_admin,only: [:index,:create] ... end
然后我有我的UsersController Rspec:
describe UsersController do render_views describe "GET /users" do it "gets all users" do @request.env["AUTHORIZATION"] = "Token token=xxxxxxxxx" @request.env["HTTP_ACCEPT"] = "application/json" @request.env["CONTENT_TYPE"] = "application/json" get :index response.status.should be(200) end end end
当我执行测试时,它总是给我一样的:
UsersController GET /users getting all users Failure/Error: response.status.should be(200) expected #<Fixnum:401> => 200 got #<Fixnum:803> => 401 ...
我使用authenticate_or_request_with_http_token方法从标头中获取令牌.
如果有人可以帮我找到跳过before_action方法或正确设置Authentication头的方法,我将非常感激.
谢谢!