Ruby on rails 为什么';得不到'/foo';在Rails 3中进行功能测试?

Ruby on rails 为什么';得不到'/foo';在Rails 3中进行功能测试?,ruby-on-rails,ruby-on-rails-3,testing,routes,functional-testing,Ruby On Rails,Ruby On Rails 3,Testing,Routes,Functional Testing,查看Rails指南和此SO问题,以下内容应适用于测试: require 'test_helper' class ApplicationControllerTest < ActionController::TestCase test "test authentication" do get "/dash" assert_response :success end end 为什么用URL获取不起作用 我在类应用程序控制器测试

查看Rails指南和此SO问题,以下内容应适用于测试:

require 'test_helper'
class ApplicationControllerTest < ActionController::TestCase
  test "test authentication" do
    get "/dash"
    assert_response :success
  end
end
为什么
用URL获取
不起作用

我在
类应用程序控制器测试
中运行此测试,它与仪表板控制器不同。您必须从与控制器同名的功能测试运行它吗


使用Test::Unit在Rails 3.07中工作。

是的,您必须从特定控制器的功能测试运行它。Rails试图提供帮助,因此它会根据测试类的名称自动选择将请求发送到哪个控制器

您可能还需要听从Marian的建议,使用操作名称而不是URL:

get :population
请注意,
get
/
post
/等等。助手函数在集成测试中的行为完全不同(我相信您的代码在那里是正确的)-这可能是您挂断电话的地方。我觉得这种不一致性也令人恼火

希望有帮助

在功能测试中,
get
(和
post
等)总是需要操作名。
get :population