Strang Behavior when testing Routes

I have the following route:

map.connect
':platform_filter/:software/:version/:platform/:distribution_channel/:id',
    :controller => 'user/version',
    :platform_filter => /all/,
    :platform => /windows|macintosh|unix|linux/,
    :distribution_channel => /Download|download/,
    :action => 'download',
    :id => /\d+/

Here is my test for this route

  def test_product_download_before_authentication()
    url = "all/matlab/r2006a/windows/download/1"

    opts = {:controller => "user/version",
                   :distribution_channel => "download",
                   :action => "download",
                   :version => r2006a,
                   :software => matlab,
                   :platform_filter => "all",
                   :platform => "windows",
                   :id => 1}
     assert_generates(url, opts)
     assert_recognizes(opts, url)
     assert_routing(url, opts)
    @request.env['PATH_INFO'] = url
    post(:download, opts)
    assert_response(:redirect)
    assert_template(nil)

  end

The test passes without failure! However, if I comment out the
assert_generates
and the assert_recognizes, the test fails. I was under the impression
that assert_rounting is just a wrapper around assert_generates and
assert_recognizes so I’m totally confused by this. Any insight from
others would be greatly appreciated.