我的功能测试中有一个测试,它在删除正确后断言重定向:
assert_redirected_to terrain_tip_url(terrain_id: entities(:deroos))
这应该导致测试url是否为http://test.host/terrains/:terrain_id/tips,并且在应用程序中是否是生成的确切url。但是,在测试用例中,这会导致url为:http://test.host/terrains/:terrain_id/tips/:id,从而导致测试用例失败:
Expected response to be a redirect to <http://test.host/terrains/446801721/tips/495319887> but was a redirect to <http://test.host/terrains/446801721/tips>
为什么terrain_tip_url包含我从未设置的id参数?我怎样才能防止这种情况发生?
答案 0 :(得分:0)
运行rake routes
应该会在这里给你一些见解。我相信你想要的是terrain_tips_url
(索引),而不是terrain_tip_url
(显示)。
http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions