Rails测试向assert_redirected_to添加不需要的参数

时间:2012-10-31 08:48:59

标签: ruby-on-rails ruby-on-rails-3 testing

我的功能测试中有一个测试,它在删除正确后断言重定向:

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参数?我怎样才能防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

运行rake routes应该会在这里给你一些见解。我相信你想要的是terrain_tips_url(索引),而不是terrain_tip_url(显示)。

http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions