为什么这个测试失败了?我怎样才能成功测试
编辑配置文件后,控制器中会调用一个方法
def update
call_the_method - method works on my machine
end
test "edit should change approval status" do
login_as(@denied_profile)
patch :update, id: @denied_profile, profile: {ALOT OF DUMMY INFORMATION }
assert @denied_profile.approval_status == Profile::ApprovalStatus::DENIED_EDITED
end
在补丁请求之后不调用该方法。编写htis测试的正确方法是什么?
答案 0 :(得分:2)
假设您在approval_status
操作中将update
字段保存在数据库中,那么您只需要执行patch
请求, reload @denied_profile
,以便它可以从数据库中获取更新的记录。
test "edit should change approval status" do
login_as(@denied_profile)
patch :update, id: @denied_profile, profile: {ALOT OF DUMMY INFORMATION }
assert @denied_profile.reload.approval_status == Profile::ApprovalStatus::DENIED_EDITED
end
使用@denied_profile.reload.approval_status
代替@denied_profile.approval_status