How to test a controller mapped to a non-canonical path?

I have a controller SuperPower that is responsible for the paths under
/super-power, and not the canonical /super_power (notice the hyphen
instead of the underscore).

In my routes.rb I have

 resources 'super-power', as :super_power

My super_power_test.rb contains

 class SuperPowerControllerTest < ActionController::TestCase
     test "shows all available" do
         get :index

         assert_not_nil assign(:powers)
     end
 end

and the test fails with

 # Running tests:

 [1/1] SuperPowerControllerTest#test_shows_all_available = 0.08 s
  1) Error:
 test_shows_all_available(SuperPowerControllerTest):
   ActionController::RoutingError: No route matches

{:controller=>“super_power”}

The test fails because it doesn’t use the correct path /super-power
but uses the canonical /super_power.

Is there a way to associate the tests of a controller to a certain path?
Is there a way to make this change for all the tests?


Gioele B. [email protected]