使用を開始したばかりTest::Unit
ですが、リダイレクトテストを特定するのに問題があります。
test "should destroy line_item" do
assert_difference('LineItem.count', -1) do
delete :destroy, id: @line_item
end
assert_redirected_to controller: 'carts', action: 'show'
end
これは次のエラーをスローします:
Failure: Expected response to be a redirect to <http://test.host/carts/980190962> but was a redirect to <http://test.host/carts/980190963>.
test_should_destroy_line_item(LineItemsControllerTest)
test/functional/line_items_controller_test.rb:47:in `block in <class:LineItemsControllerTest>'
ドキュメントには次のように記載されています。
assert_redirected_to(options = {}、message = nil)public
渡されたリダイレクトオプションが、最新のアクションで呼び出されたリダイレクトのオプションと一致することを表明します。この一致は部分的である可能性があり、assert_redirected_to(:controller => "weblog")はredirect_to(:controller => "weblog"、:action => "show")などのリダイレクトにも一致します。
しかしassert_redirected_to controller: 'carts'
、さらに完全な失敗につながります。
Failure: Expected response to be a redirect to <http://test.host/carts> but was a redirect to <http://test.host/carts/980190963>.
test_should_destroy_line_item(LineItemsControllerTest)
ドキュメントが正しい場合、何が欠けていますか?そうでない場合、一致するIDに関係なく、リダイレクトをテストするためにどのような代替手段が必要ですか?