Ruby on rails 如何使用Minitest测试Rails路由?

Ruby on rails 如何使用Minitest测试Rails路由?,ruby-on-rails,routing,minitest,Ruby On Rails,Routing,Minitest,我正在尝试对现有的Rails应用程序(3.2)使用Minitest,但没有运行路由测试的机会。我尝试过rspec语法(应该路由到)和TestUnit语法(断言路由),但没有成功 有什么建议可以让它发挥作用吗?我需要包括的具体模块等 谢谢如果您正在使用,您可以通过在test/routes/homepage\u test.rb中放置以下内容来创建路由测试: require "minitest_helper" class HomepageRouteTest < ActionDispatch::

我正在尝试对现有的Rails应用程序(3.2)使用Minitest,但没有运行路由测试的机会。我尝试过rspec语法(应该路由到)和TestUnit语法(断言路由),但没有成功

有什么建议可以让它发挥作用吗?我需要包括的具体模块等

谢谢

如果您正在使用,您可以通过在
test/routes/homepage\u test.rb中放置以下内容来创建路由测试:

require "minitest_helper"

class HomepageRouteTest < ActionDispatch::IntegrationTest
  def test_homepage
    assert_routing "/", :controller => "home", :action => "index"
  end
end
您可以使用以下rake任务运行这些测试:

rake minitest:routes

@blowmage的回答对我很有帮助,但看起来语法有点变化

对于Rails 4:

require "test_helper"

class HomepageRouteTest < ActionDispatch::IntegrationTest
  def test_messages
    assert_generates '/messages', :controller => "messages", :action => "index"
  end
end
需要“测试助手”
类HomepageRouteTest“messages”,:action=>“index”
结束
结束

当使用assert\u路由时,我得到了错误的未定义方法“assert\u routing”。在minitest\u helper文件中是否有一个步骤需要修改以使其生效?cr45:您需要确保您的测试类继承自
minitest::Rails::ActionDispatch::IntegrationTest
,或者如果您使用的是spec DSL,则顶层描述需要以“集成测试”或“验收测试”结尾.@blowmage编写像这样的路由测试w/Rails 4.1和MiniTest是否仍然有用@我从来没有说过它有用。这是可能的。我想,如果您对现有的特定路由有外部依赖,那么编写这些测试是值得的。这取决于您的需求。Rails为您提供了三种用于检查路由的断言:、和。使用与您尝试验证的内容最匹配的断言。
require "test_helper"

class HomepageRouteTest < ActionDispatch::IntegrationTest
  def test_messages
    assert_generates '/messages', :controller => "messages", :action => "index"
  end
end