Ruby on rails 3 assert_使用方法的路由正在给出错误,而不是失败

Ruby on rails 3 assert_使用方法的路由正在给出错误,而不是失败,ruby-on-rails-3,routes,functional-testing,assertions,Ruby On Rails 3,Routes,Functional Testing,Assertions,在我的rails 3.2.3应用程序中,我有一个主题控制器,它被建模为一个资源。我想写一个功能测试来验证post on/topics是一个有效的路由。这应该首先失败,然后我将添加代码来修复它。然而,我在路由测试中得到了一个错误,而不是失败。我做错了什么?(注意:如果我在routes.rb中修复了路由,测试就会通过-只是不确定为什么我会在测试中得到错误而不是失败): \topics\u controller\u test.rb test 'route exists to create topic'

在我的rails 3.2.3应用程序中,我有一个主题控制器,它被建模为一个资源。我想写一个功能测试来验证post on/topics是一个有效的路由。这应该首先失败,然后我将添加代码来修复它。然而,我在路由测试中得到了一个错误,而不是失败。我做错了什么?(注意:如果我在routes.rb中修复了路由,测试就会通过-只是不确定为什么我会在测试中得到错误而不是失败):

\topics\u controller\u test.rb

test 'route exists to create topic' do
  assert_routing({:path => '/topics', :method => 'post'} , { :controller => "topics", :action => "create"}, {}, {}, 'could not route to create topic')
end
resources :topics, :only => [:new]
#routes.rb

test 'route exists to create topic' do
  assert_routing({:path => '/topics', :method => 'post'} , { :controller => "topics", :action => "create"}, {}, {}, 'could not route to create topic')
end
resources :topics, :only => [:new]
#终端输出

$ rake test:functionals
Run options: 
#运行测试:

.....E.

Finished tests in 0.373543s, 18.7395 tests/s, 53.5414 assertions/s.

1) Error:
test_route_exists_to_create_topic(TopicsControllerTest):
ActionController::RoutingError: No route matches "/topics"
.../gems/ruby-1.9.3-p0/gems/actionpack-3.2.3/lib/action_dispatch/routing/route_set.rb:633:in `recognize_path'
.../gems/ruby-1.9.3-p0/gems/actionpack-3.2.3/lib/action_dispatch/testing/assertions/routing.rb:210:in `recognized_request_for'
.../gems/ruby-1.9.3-p0/gems/actionpack-3.2.3/lib/action_dispatch/testing/assertions/routing.rb:42:in `assert_recognizes'
.../gems/ruby-1.9.3-p0/gems/actionpack-3.2.3/lib/action_dispatch/testing/assertions/routing.rb:118:in `assert_routing'
        `.../myapp/test/functional/topics_controller_test.rb:25:in block in <class:TopicsControllerTest>'`

>> 7 tests, 20 assertions, 0 failures, 1 errors, 0 skips
…E。
以0.373543s、18.7395次测试/秒、53.5414次断言/秒的速度完成测试。
1) 错误:
测试路由存在创建主题(TopicsControllerTest):
ActionController::RoutingError:没有与之匹配的路由“/主题”
…/gems/ruby-1.9.3-p0/gems/actionpack-3.2.3/lib/action\u dispatch/routing/route\u set.rb:633:in“识别路径”
…/gems/ruby-1.9.3-p0/gems/actionpack-3.2.3/lib/action\u dispatch/testing/assertions/routing.rb:210:在“已识别的请求”中
…/gems/ruby-1.9.3-p0/gems/actionpack-3.2.3/lib/action\u dispatch/testing/assertions/routing.rb:42:in'assert\u'
…/gems/ruby-1.9.3-p0/gems/actionpack-3.2.3/lib/action\u dispatch/testing/assertions/routing.rb:118:in'assert\u routing'
`…/myapp/test/functional/topics\u controller\u test.rb:25:in block in'`
>>7次测试,20次断言,0次失败,1次错误,0次跳过

路由.rb中创建的路由与您测试的路由不同。如果要路由到
:在控制器中创建
操作,在
路由.rb中,应使用:

resources :topics, :only => [:create]
请参见铁路指南中的