Я думаю, что у меня была та же проблема, что и у вас: я просто хотел подтвердить, что мой код перенаправляет на указанный URL с правильным кодом статуса, но я не хочу ничего делать с этим URL.
Проблема в том, что сайт возвращает перенаправление, как и ожидалось, но Rack :: Test интерпретирует все для тестируемого приложения, и этот URL, вероятно, не существует. Но мы можем просто поймать ошибку и посмотреть, как выглядел ответ. Это, вероятно, не будет работать ни с чем, кроме драйвера по умолчанию для capybara.
begin
click_button('Pay with Paypal')
rescue ActionController::RoutingError
end
expect(page.status_code).to eq(302)
expect(page.response_headers['Location']).to include('paypal.com/cgi-bin/websrc')