Интеграционный тест для метода, который перенаправляет на внешний сайт

Этот метод перенаправляет на внешний сайт. Как мне проверить это поведение? Я знаю, что метод работает правильно, потому что я тестировал в браузере, но не могу пройти тест.

  def create
    if @order.save
      redirect_to Gateway.new(@order).send
    else
      render 'new'
    end
  end

Я написал этот тест, который не проходит с "Ошибка отсутствующего шаблона":

describe 'User creates an order with valid info' do
  before do
    WebMock.allow_net_connect!
    stub_request(:any, "https://external-site.com/v2/checkout")
  end

  it 'creates the order and redirects to checkout page' do
    fill_in_order
    expect { click_button "Submit" }.to change(Order, :count)
  end
end

Ошибка:

Failure/Error: click_button "Submit"
     ActionView::MissingTemplate:
       Missing template orders/create, ...

1 ответ

Установите ответ для примера возврата:

Replaying raw responses recorded with curl -is

`curl -is www.example.com > /tmp/example_curl_-is_output.txt`
raw_response_file = File.new("/tmp/example_curl_-is_output.txt")

from file

stub_request(:get, "www.example.com").to_return(raw_response_file)

or string

stub_request(:get, "www.example.com").to_return(raw_response_file.read)
Другие вопросы по тегам