【问题标题】:Rails 5 rspec controller test return nil resultRails 5 rspec 控制器测试返回 nil 结果
【发布时间】:2018-01-22 12:49:19
【问题描述】:

我在为这条路线编写测试时遇到了这个问题

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) 总是返回 nil。尽管它在其他路线的测试中完美运行。真实代码也可以,只是测试失败了。似乎没有运行任何操作,没有 vcr 记录,所以我怀疑这行 post :close, params: { code: 5742, access_token: access_token }, xhr: true 是错误的。有人有提示吗?

【问题讨论】:

    标签: ruby-on-rails ruby rspec


    【解决方案1】:

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

    【讨论】:

    • 你救了我的命。它停留在require_auth!方法所以没有返回。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多