【发布时间】:2017-05-28 11:21:27
【问题描述】:
在我的 Rails 5 应用程序中,我使用了这些宝石:
gem "devise", "~> 4.2.0"
gem "devise_token_auth"
我的用户模型:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable, :rememberable, :trackable, :validatable
include DeviseTokenAuth::Concerns::User
我无法创建 Rspec 请求来更新用户。无论我尝试过什么,都失败了:
require "rails_helper"
RSpec.describe UsersController, type: :controller do
describe "PATCH #update" do
context "with valid params" do
it "updates the requested user" do
u1 = create(:user)
patch :update, params: { id: u1.to_param, user: attributes_for(:user, name: "name_new", email: "email_new@mail.com") },
format: :json
u1.reload
expect(u1.name).to eq("name_new")
end
end
问题是创建和删除用户的测试运行良好。只有更新没有。
它在补丁请求期间发送新参数,但用户返回的参数始终是旧参数。错误是什么——我不知道,它只是说测试失败。再说一遍——只有一个用于更新。
我尝试过使用 PUT 和 POST —— 仍然失败。
【问题讨论】:
标签: ruby-on-rails ruby rspec factory-bot ruby-on-rails-5