ber*_*kes 6 ruby-on-rails minitest
我正在使用Wicked,它在完成向导后重定向到自定义链接.第二次重定向会发生这种情况.
因此,PUT update触发a 302到/ orders/1/finish_wicked,然后重定向到/ orders/1.这可以按预期工作,但很难在我的控制器测试中测试.
it "must redirect to the order" do
put :update
assert_redirected_to "/orders/1/finish_wicked" #=> This passes, but I am not interested in this
assert_redirected_to order #=> This fails, yet, in the end, the user is being redirected here.
end
Run Code Online (Sandbox Code Playgroud)
如何在功能控制器测试中测试第二个重定向?
现在,我将它分成两个测试:
describe "finalize" do
it "should redirect to the wicked_finish page" do
put :update, id: :finalize, order_id: order.id, order: { accepted: true }
assert_redirected_to controller: "build", action: :update, id: :wicked_finish, order_id: order.id
end
describe "wicked_finish" do
it "should redirect to the order page" do
get :show, id: :wicked_finish, order_id: order.id
assert_redirected_to order
end
end
end
Run Code Online (Sandbox Code Playgroud)
一个测试它被重定向到邪恶提供的终点路径,另一个测试定义如果用户落在那里,她被重定向到订单.这过于冗长; 是不是可以在控制器测试中遵循重定向?或者这是一个坏主意,是否应该像我一样将测试分开?
嗯,不确定这是否是一个正确的答案,但我见过一些做这样的事情的糟糕代码。拨打电话,当您将其重定向到页面时,响应包含重定向到 bla bla bla。就我而言,重定向页面取决于传递的参数,因此我事先知道链接,并且断言那里存在 url/链接。
| 归档时间: |
|
| 查看次数: |
1749 次 |
| 最近记录: |