我正在尝试更好地了解服务器日志以增强我的测试环境。对于我发送到服务器的大多数查询,我(几乎)总是得到如下的200条消息:
Completed 200 OK in 410ms (Views: 403.0ms | ActiveRecord: 1.7ms)
当使用assert_redirected_to方法时,这(似乎)触发了我的测试中的以下失败:
Expected response to be a <redirect>, but was <200>
例如,如果我在控制器中按如下方式更新我的模型“用户”
def update
@user = User.find(params[:id])
if @user.update_attributes(user_params)
flash[:success] = "Your profil has been updated"
redirect_to @user
end
end
我想测试重定向。我用:
test "friendly forwarding" do
get edit_user_path(@user) #user is a very basic fixture that I call in the test
log_in_as(@user)
assert_redirected_to edit_user_path(@user)
patch user_path(@user), user: { name: "Foo Bar", email: "foo@bar.com }
assert_redirected_to @user #line that makes the test fails
end
有什么问题?我应该使用与assert_redirected_to方法不同的东西,还是我的代码有问题,不应该发回200条消息?
答案 0 :(得分:0)
Pragma: no-cache Cache-Control: no-cache
当更新失败时,您正在呈现部分,因此响应为200.通常,更新方法将显示验证错误并在此时呈现编辑表单。请参阅此处:rails教程中的Successful and unsuccessful updates。