ruby-on-rails - Rspec Controller 测试中的 response.body 返回空字符串

标签 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)
我在其他地方阅读了 SO 以包括 render_views你可以看到我已经这样做了,但这没什么区别。

如果您需要更多信息,请告诉我

最佳答案

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

关于ruby-on-rails - Rspec Controller 测试中的 response.body 返回空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36516030/

相关文章:

ruby-on-rails - 使用 Active Admin 时无法更新或删除

mysql - 在 Rails 中迁移期间重命名列时出错

ruby-on-rails - Rails - strip_tags - 没有捕获 DOCTYPE?

ios - 无法读取数据,因为它的格式不正确 [swift 3]

javascript - 当父键名称未知时访问 JSON 项

ruby-on-rails - Rails 没有使用我的全局 Ruby 版本

ruby-on-rails - 从 Meta_search 升级到 Ransack 时出现 "No valid predicate"错误?

ruby-on-rails - 无法安装 autotest-fsevent 或 rs-fsevent;收到 ld 错误但已安装 xcode

ruby - 在 Ruby 中复制文件时如何捕获错误?

mysql - 如果 id 值不存在另一个表,则 SQL 连接