gpt4 book ai didi

ruby-on-rails - Rails 3 和 Rspec 2 命名空间 Controller 问题

转载 作者:行者123 更新时间:2023-12-04 17:00:50 24 4
gpt4 key购买 nike

我正在尝试编写一个规范来测试具有命名空间的 Controller ,我们称之为 Admin::FooController .我的规范叫做 admin_foo_controller_spec.rb .在规范中,我正在尝试编写一个非常基本的规范,以查看它是否可以检索 Controller 的操作。

describe "GET 'index'" do
it "should be successful" do
get 'index'
response.should be_success
end
end

但相反,我收到一个错误:
 Failure/Error: get 'index'
No route matches {:controller=>"admin/foo"}

对于另一个操作,我进行了基本相同的测试,结果发现响应不成功。在实际的 webapp 中,我可以很好地访问这些 url。我应该提到的一件事是,这不是一个 RESTful 资源(它没有任何意义)所以它实际上只是一组相关的管理操作,所以在我的 routes.rb 中它基本上就像
namespace :admin do
scope "foo" do
match "action1" => "foo#action1"
match "action2" => "foo#action2"
match "/index" => "foo#settings"
match "settings" => "foo#settings"
end
end

任何想法我做错了什么?似乎命名空间给 Rails 带来了麻烦,尤其是对于像我这样的新手。谢谢!

最佳答案

在您的 route ,您的 Foo Controller 中没有索引操作尝试获取“设置”

describe "GET 'index'" do
it "should be successful" do
get 'settings'
response.should be_success
end
end

在 Controller 规范中,您需要定义 Controller 的操作而不是真正的路由。您在集成测试中尝试路由。

关于ruby-on-rails - Rails 3 和 Rspec 2 命名空间 Controller 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4524735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com