我正在尝试编写一个简单的测试来验证对Employee
的更新,而在实践中,我还是想编写该测试。
RSpec.describe EmployeesController, type: :controller do
before(:each) do
admin_user = FactoryBot.create(
:user,
user_type: 1,
email: "admin@admin.com",
password: "oeifhoi2345tf",
password_confirmation: "oeifhoi2345tf"
)
login_as(admin_user)
@employee = create(:employee)
end
it 'expects employee values to update following update' do
p @employee
put :update, params: {
id: @employee[:id],
employee: { name: "New Name" }
}
@employee.reload
p @employee
expect(@employee.name).to eq("New Name")
end
end
测试失败,并且@employee.name
保持不变。我有一种更新甚至没有发生的感觉,因为我向控制器添加了打印行,但在日志中看不到它:
def update
p "IN UPDATE"
if @employee.update(employee_params)
redirect_to edit_employee_path(@employee[:id])
else
render :edit
end
end
put
通话中是否缺少某些内容?