如何使用Minitest测试Rails路由?

dou*_*lea 3 routing ruby-on-rails minitest

我正在尝试将Minitest用于现有的Rails应用程序(3.2),但没有运气路由测试.我已经尝试过rspec语法(应该是route_to)和TestUnit语法(assert_routing),但没有运气.

有什么建议让这个工作?我需要包含的具体模块等?

谢谢

blo*_*age 14

如果您使用的是minitest-rails,则可以通过将以下内容放入以下内容来创建路由测试test/routes/homepage_test.rb:

require "minitest_helper"

class HomepageRouteTest < ActionDispatch::IntegrationTest
  def test_homepage
    assert_routing "/", :controller => "home", :action => "index"
  end
end
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用Minitest Spec DSL:

require "minitest_helper"

describe "Homepage Route Acceptance Test" do
  it "resolves the homepage" do
    assert_routing "/", :controller => "home", :action => "index"
  end
end
Run Code Online (Sandbox Code Playgroud)

您可以使用以下rake任务运行这些测试:

rake minitest:routes
Run Code Online (Sandbox Code Playgroud)

  • cr45:您需要确保您的测试类继承自`MiniTest :: Rails :: ActionDispatch :: IntegrationTest`,或者如果您使用规范DSL,则顶级描述需要以"Integration Test"或"Acceptance"结束测试". (5认同)
  • @pdobb我从未声称它有用.这是可能的_.我想如果你对现有的特定路线有外部依赖,那么值得编写这些测试.这取决于您的需求. (2认同)