Rspec控制器测试中的response.body返回一个空字符串

时间:2016-04-09 11:15:25

标签: ruby-on-rails ruby json rspec devise

我正在尝试使用Devise gem在Rails中构建一个非常好的JSON api,我有以下代码:

users_controller_spec.rb:

require 'rails_helper'

RSpec.describe Api::V1::UsersController, type: :controller do

    describe "PUT/PATCH #update" do
    render_views
    context "when is successfully updated" do

      before(:each) do
        @user = FactoryGirl.create :user
        request.headers['Authorization'] = @user.auth_token
      end

      it "renders the json representation for the updated user" do
        user_response = json_response
        expect(user_response[:email]).to eq "newmail@example.com"
      end
  end
end

我遇到的问题是response.body等于一个空字符串,这是无效的JSON,因此我不能JSON.parse(response.body)

我在其他地方读到包含render_views的其他内容你可以看到我已经这样做了,但没有区别。

如果您需要更多信息,请与我们联系

1 个答案:

答案 0 :(得分:0)

就我而言,结果是引发了一个空白正文的权限错误,因为我没有登录用户。首先检查您的回复是否成功。