RSpec - как глобально установить протокол https для всех тестов запросов - PullRequest
0 голосов
/ 08 ноября 2018
RSpec.describe "Home", type: :request do

    describe "GET /index" do
      it "is a success" do
        get root_path, {}, {'HTTPS' => 'on'}
        expect(response).to have_http_status(200)
      end
    end
end

Версия Rspec - 3.8 Тип теста - Запрос spec

Как настроить протокол https глобально для всех спецификаций запросов?

1 Ответ

0 голосов
/ 15 февраля 2019

Похоже, вы используете Rails, и в этом случае вы можете сделать одно из следующих действий:

  1. Чтобы установить «https» для всех примеров Rspec, создайте файл, например spec / support / url_options.rb , который содержит следующее:
RSpec.configure do |config|
  Rails.application.routes.default_url_options[:protocol] = 'https'
end
  1. Чтобы указывать только спецификации запросов, вы можете использовать ловушку, например:
RSpec.configure do |config|
  config.before(:all, type: :request) do
    Rails.application.routes.default_url_options[:protocol] = 'https'
  end
end
  1. Для конфигурации всего сайта вместо этого можно добавить следующее в config / environment / test.rb :
Rails.application.configure do
  default_url_options[:protocol] = 'https'
end

Это должно хорошо работать для спецификаций запроса, но могут быть дополнительные сложности со спецификациями функций. В этом случае см https://github.com/rspec/rspec-rails/issues/1275.


Если вы не используете Rails, вы все равно можете следовать вышеприведенному шаблону, но заменить эквивалентный метод или настройку вашей платформы. Если все остальное терпит неудачу, вы можете переопределить методы Rspec get (), post () и т. Д., А в переопределенных методах просто вызвать super() с { protocol: 'https' } или { 'HTTPS' => 'on' }, объединенными в аргументы.

Также обратите внимание, что 'HTTPS' => 'on' может быть признано устаревшим в пользу protocol: 'https'.


Похожие посты с дополнительными возможностями:

Проверка HTTPS (SSL) запроса в RSpec Rails

Простой способ проверить HTTPS (SSL) запрос с помощью RSpec

Принудительное использование HTTPS / SSL для всех спецификаций контроллера / запроса в rspec

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...