【发布时间】:2020-09-08 00:06:38
【问题描述】:
在我的 Rails 6 应用程序中,我正在尝试测试允许管理员用户在不提供用户密码的情况下更新用户数据的控制器方法。所有操作都在 ActiveAdmin 中运行。
admin/users.rb
controller do
def update
model = :user
%w[password password_confirmation].each { |p| params[model].delete(p) } if params[model][:password].blank?
super
end
end
基于this页面我尝试编写规范:
admin/users_spec.rb
describe 'PUT update' do
let(:user) { create(:user, :random_email) }
let(:valid_attributes) do
ActionController::Parameters.new(
{
user: {
email: 'michael.kelso@example.com',
password: '',
},
},
)
end
before do
put :update, params: { id: user.id, user: valid_attributes }
end
it 'update user' do
expect(user.reload.email).to eq('michael.kelso@example.com')
end
end
end
我应该怎么做才能让这个测试变成绿色?
【问题讨论】:
标签: ruby-on-rails ruby rspec