【发布时间】:2012-07-08 04:49:37
【问题描述】:
我正在尝试将 Minitest 用于现有的 Rails 应用程序 (3.2),但没有任何运气运行路由测试。我尝试了 rspec 语法(应该是 route_to)和 TestUnit 语法(assert_routing),但没有运气。
关于让它发挥作用的任何建议?我需要包含的特定模块等?
谢谢
【问题讨论】:
标签: ruby-on-rails routing minitest
我正在尝试将 Minitest 用于现有的 Rails 应用程序 (3.2),但没有任何运气运行路由测试。我尝试了 rspec 语法(应该是 route_to)和 TestUnit 语法(assert_routing),但没有运气。
关于让它发挥作用的任何建议?我需要包含的特定模块等?
谢谢
【问题讨论】:
标签: ruby-on-rails routing minitest
如果您使用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
或者,您可以使用 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
您可以使用以下 rake 任务运行这些测试:
rake minitest:routes
【讨论】:
MiniTest::Rails::ActionDispatch::IntegrationTest,或者如果您使用规范 DSL,顶级描述需要以“集成测试”或“验收测试”结尾"。
@blowmage 的回答对我有所帮助,但看起来语法发生了一些变化。
使用 Rails 4:
require "test_helper"
class HomepageRouteTest < ActionDispatch::IntegrationTest
def test_messages
assert_generates '/messages', :controller => "messages", :action => "index"
end
end
【讨论】: