Rails rspec 控制器测试 ActionController::RoutingError

发布于 2024-12-06 11:04:57 字数 773 浏览 1 评论 0原文

我的路线看起来像这样,

  resources :stores, :except => [:destroy] do
    resources :toys, :member => {:destroy => :delete}
  end

我的对象控制器规范看起来像这样

require 'spec_helper'

describe ToysController do

    describe "GET index" do
        it "assigns all toys as @toys" do
          toy11 = Factory(:toy, :is_shiny => true)
          toy12 = Factory(:toy,:is_shiny => false)
          get :index
          assigns(:toys).should eq([toy12,toy11 ])
        end
      end
    end
end

,我收到以下错误

 Failure/Error: get :index
 ActionController::RoutingError:
 No route matches {:controller=>"toys"}

,因为玩具资源嵌套在商店资源下,所以它无法获取toys_path路线,所以我认为规范失败了。

我如何通过规范?

谢谢

My routes looks like this

  resources :stores, :except => [:destroy] do
    resources :toys, :member => {:destroy => :delete}
  end

my objects controller spec look like this

require 'spec_helper'

describe ToysController do

    describe "GET index" do
        it "assigns all toys as @toys" do
          toy11 = Factory(:toy, :is_shiny => true)
          toy12 = Factory(:toy,:is_shiny => false)
          get :index
          assigns(:toys).should eq([toy12,toy11 ])
        end
      end
    end
end

I got the following error

 Failure/Error: get :index
 ActionController::RoutingError:
 No route matches {:controller=>"toys"}

Since the toys resource is nested under stores resources its not able to get toys_path route so i think so the spec is failing.

How do i pass the spec?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南街九尾狐 2024-12-13 11:04:57

该错误是由于未将 store_id 发送到 tyos 索引造成的。
如果我发送

:store_id => @store.id in get :index

它就会过去。

The error is due to not sending store_id to tyos index.
Had i sent

:store_id => @store.id in get :index

it would have passed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文