0
我遇到webmocks stubbing的問題。St a 500錯誤
這是一個使用devise/cancan進行身份驗證和授權的Rails 4應用程序。我正在使用RSpec編寫我的測試。
我有一個(簡化爲這篇文章的原因!)測試,我想運行。
require 'rails_helper'
RSpec.describe ApiChecksController, type: :controller do
include Devise::TestHelpers
let(:user) { FactoryGirl.create :user }
let(:api_params) do
{
param_1: 'VALUE',
param_2: '1980-01-01',
param_3: 'AA123',
param_4: "#{Date.today}"
}
end
context 'logged in as standard user' do
describe 'POST #lookup' do
context 'displays error' do
it 'when 500 returned' do
WebMock.disable_net_connect!(allow: 'codeclimate.com')
sign_in user
stub_request(:post, "#{ENV['API_PROXY']}/api/checks").
to_return(status: [500, "Internal Server Error"])
post(:lookup, api_check: api_params)
expect(response.status).to eq(500)
end
end
end
end
end
在完整的測試套件中,expect語句之上的所有內容都使用let或set之前的塊設置。我試圖將其提取到最小的選項,測試仍然失敗。
問題
我期待
stub_request(:post, "#{ENV['API_PROXY']}/api/checks").
to_return(status: [500, "Internal Server Error"])
總是返回500個狀態響應,但它返回200
是我的期望是否正確?這是如何webmocks應該被稱爲?