【发布时间】:2016-10-13 19:55:12
【问题描述】:
所以我一直在尝试进行基本的响应测试 - 使用 200 和 403。我不确定我是否需要添加任何其他内容 ..
accounts_spec.rb
RSpec.describe Api::V1::AccountsController, :type => :controller do
describe "GET index no account" do
it "has a 403 status code" do
get :index
expect(response.status).to eq(403)
end
end
describe "GET index with account" do
login_user
it "has a 200 status code" do
get :index
expect(response.status).to eq(200)
end
end
end
帐户控制器#index
def index
#show user details
raise if not current_user
render json: { :user => current_user.as_json(:except=>[:created_at, :updated_at, :authorization_token, :provider, :uid, :id])}
rescue
render nothing: true, status: 403
end
我不断得到
1)Api::V1::AccountsController GET index with account has a 200 status code
expected: 200
got: 403
有什么想法我做错了吗?
更新
module ControllerMacros
def login_user
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:user]
user = FactoryGirl.create(:user)
sign_in :user, user
end
end
end
【问题讨论】:
-
尝试用 begin 块包裹 raise。所以开始...raise...渲染json:{:user ...救援什么都不渲染:true,状态:403结束
-
这种包装也不起作用...
标签: ruby-on-rails ruby rspec devise factory-bot