Rails 5 rspec控制器测试返回nil结果

时间:2018-01-22 01:11:57

标签: ruby-on-rails ruby rspec

在为此路线编写测试时,我遇到此问题

close_offer POST   (/:locale)/offers/:code/close(.:format)       offers#close {:locale=>/en|vi/}

这是我写的测试:

RSpec.describe OffersController, type: :controller do
  let(:access_token) { extract_access_token_from_vcr_cassette }

  describe 'POST #close' do
    describe 'successful response' do
      before(:each) do
        VCR.use_cassette('offers/successful_close_offer') do
          post :close, params: { code: 5742, access_token: access_token }, xhr: true
        end
      end

      it 'returns success? = true' do
        expect(assigns(:result)).not_to be_nil
      end
    end
  end
end

不知何故,assigns(:result)总是返回零。虽然它在其他路线的测试中完美运行。真正的代码也有效,只有测试失败。似乎没有运行,没有vcr记录,所以我怀疑这一行post :close, params: { code: 5742, access_token: access_token }, xhr: true是错误的。有人有提示吗?

1 个答案:

答案 0 :(得分:1)

是的,我曾经面对同样的情况。我们来检查您的身份验证。不知何故,你无法登录,因此路线不像你预期的那样,没有结果返回。