我正在尝试编写一个测试命名空间控制器的规范,我们称之为Admin::FooController
。我的规格称为admin_foo_controller_spec.rb
. 在规范中,我正在尝试编写一个非常基本的规范,以查看它是否可以检索控制器的操作。
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 带来麻烦,尤其是对于像我这样的新手。谢谢!