Как написать удаленный запрос spe c? - PullRequest
1 голос
/ 19 марта 2020

В моем приложении rails есть действие, которое отвечает как в html, так и в js формате. Результат, в соответствии с форматом, немного меняется. Поэтому я хотел бы написать один тест для html и другой для js ответа. Я использую rspe c.

Контроллер:

# app/controllers/my_controller.rb
class MyController < ApplicationController
  def my_action
    respond_to do |format|
      format.html do
        # Do something...
      end

      format.js do
        # Do something else...
      end
    end
  end
end

Spe c:

# spec/requests/my_spec.rb
require "rails_helper"

RSpec.describe "My", type: :request do
  describe "GET /my_action" do
    context 'HTML' do
      # HTML tests
    end

    context 'JS' do
      # JS tests
    end
  end
end

1 Ответ

0 голосов
/ 19 марта 2020

Rails определяет формат запроса через заголовок http Accept, в тестах есть помощник для имитации xhr (также устанавливает X-Requested-With, который является частью смягчения CSRF):

get "/some/path/to/my_action", xhr: true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...