1

以前の URL をリダイレクトするために、 rack-rewriteを使用しています。新しい内部パスにリダイレクトする古いパスは、次のように問題なくテストできます。

require 'test_helper'

class MiscellaneousTest < ActionDispatch::IntegrationTest

    test 'redirect about.php' do
        get_via_redirect '/about.php?country=US'
        assert_equal '/us/about', path

        get_via_redirect '/about.php?country=CA'
        assert_equal '/ca/about', path

        # default
        get_via_redirect '/about.php'
        assert_equal '/ca/about', path
    end
end

しかし、私が疑問に思っているのは、古いパスが現在外部 URL にマップされているケースをテストするにはどうすればよいかということです。

たとえば、次の古いルートが検出された場合、/blog/12345/something-cool-to-say次の外部 URL にマップされますhttp://blog.far.far.away.com/12345/something-cool-to-say

$BLOG_URL = 'http://blog.far.far.away-example.com'
r301 %r{^/blog/([0-9]{5})/(.*)\.php}, "#{BLOG_URL}/$1/$2" # token, slug
4

1 に答える 1

1

これを試して:

assert_redirected_to 'http://some.host/with/a/path'
于 2012-12-14T21:54:17.123 に答える