小编Wis*_*ter的帖子

功能测试中的路由问题

我正在做一个简单的测试项目,为我的测试做好准备.我对嵌套资源相当新,在我的例子中我有一个newsitem,每个newsitem都有注释.

路由如下所示:

resources :comments

resources :newsitems do
    resources :comments
end
Run Code Online (Sandbox Code Playgroud)

我正在为评论设置功能测试,但我遇到了一些问题.

这将获得newsitem的注释索引.@newsitem在setupc中声明.

test "should get index" do
    get :index,:newsitem_id => @newsitem
    assert_response :success
    assert_not_nil assigns(:newsitem)
end
Run Code Online (Sandbox Code Playgroud)

但问题出在这里,在"应该变得新".

 test "should get new" do
    get new_newsitem_comment_path(@newsitem)
    assert_response :success
 end
Run Code Online (Sandbox Code Playgroud)

我收到以下错误.

ActionController::RoutingError: No route matches {:controller=>"comments", :action=>"/newsitems/1/comments/new"}
Run Code Online (Sandbox Code Playgroud)

但是当我查看路线表时,我看到了这个:

new_newsitem_comment GET    /newsitems/:newsitem_id/comments/new(.:format)      {:action=>"new", :controller=>"comments"}
Run Code Online (Sandbox Code Playgroud)

我不能使用名称路径或我在这里做错了什么?

提前致谢.

resources nested ruby-on-rails functional-testing nested-resources

2
推荐指数
1
解决办法
1591
查看次数