如何测试命名路由?

时间:2010-04-13 22:32:13

标签: ruby-on-rails testing tdd

测试命名路径时出现以下错误

1) Failure:
test_settings_route(ProjectsControllerTest) [/test/functional/projects_controller_test.rb:15]:
The generated path <"/projects/1/edit"> did not match <"/projects/1/settings">

这是测试以及我在路线文件中添加的内容

# projects_controller_test.rb
require 'test_helper'
class ProjectsControllerTest < ActionController::TestCase
def test_settings_route
  assert_routing '/projects/1/settings', :controller => 'projects', :action => 'edit', :id => '1'
end

# routes.rb
map.settings '/projects/:id/settings', :controller => 'projects', :action => 'edit'

在我的路径文件中使用该条目我的应用程序按预期运行 - 这是在请求/ projects / 1 / settings时呈现项目的编辑模板 - 但我只是不明白如何让我的测试变为绿色。

我也尝试过具有相同结果的shoulda宏

should_route :get, "/projects/1/settings", :controller => 'projects', :action => 'edit', :id => '1'

1 个答案:

答案 0 :(得分:0)

我在routes.rb中的命名路线上方map.resources :projects。将我的命名路线移到顶部修复了我的测试。