I'm trying to test the routes on my rails 2.3.4 application. There are several sites that explain how to test routes, including the rails docs, but I'm getting errors following the instructions.
First, I'm assuming that these tests can be done in related unit test files. There seems to be no more obvious place, and none of the docs specify.
That said, this is a condensed version of test/unit/TitlesTest.rb
require File.dirname(__FILE__) + '/../test_helper'
class TitleTest < Test::Unit::TestCase
# include ActionController::Assertions::RoutingAssertions
def test_routes
assert_routing "games", { :controller => "titles", :section => "games", :action => "index", :id => nil }
end
end
rake test:units
fails with the error:
NoMethodError: undefined method `assert_routing' for #<TitleTest:0x7f387232ec98>
/test/unit/title_test.rb:7:in `test_routes'
I saw in the Rails API that assert_routing is defined in ActionController::Assertions::RoutingAssertions
, so I attempted to include that module, only to have it fail elsewhere.
Note the commented include
line in the code example above.
NoMethodError: undefined method `clean_backtrace' for #<TitleTest:0x7fd895fadf00>
/test/unit/title_test.rb:7:in `test_routes'
clean_backtrace
is another testing method defined in ActionController::TestCase::Assertions.
I'm not getting any google search results for these errors - no one else seems to be having this problem. The problem also occurs if I recreate the scenario in a freshly generated rails app. I don't think I should be having to include these modules in my test cases. What might be wrong here?