RSpec - cómo establecer globalmente protocolo https en todas las pruebas de solicitud

votos
0
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

Versión rspec - 3.8 Tipo de prueba - Solicitud de especificaciones

¿Cómo se configura el protocolo https forma global en todas las características peticiones?

Publicado el 07/11/2018 a las 20:45
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

Parece que puede que esté utilizando los carriles, en cuyo caso se podría hacer uno de los siguientes:

  1. Para establecer "https" para todos los ejemplos RSpec, crear un archivo, tales como especificaciones / soporte / url_options.rb , que contiene lo siguiente:
RSpec.configure do |config|
  Rails.application.routes.default_url_options[:protocol] = 'https'
end
  1. sólo para dirigirse a petición especificaciones, se puede utilizar un gancho, como por ejemplo:
RSpec.configure do |config|
  config.before(:all, type: :request) do
    Rails.application.routes.default_url_options[:protocol] = 'https'
  end
end
  1. Para una configuración de todo el sitio, en su lugar podría añadir lo siguiente a config / ambientes / test.rb :
Rails.application.configure do
  default_url_options[:protocol] = 'https'
end

Esto debería funcionar bien para solicitar especificaciones, pero puede haber complicaciones adicionales con especificaciones de características. En ese caso, consulte https://github.com/rspec/rspec-rails/issues/1275 .


Si usted no está utilizando rieles, todavía se podía seguir el patrón amplio anterior, pero sustituya método o ajuste de configuración equivalente en su marco. Si todo lo demás falla, se puede anular el RSpec métodos get (), posterior (), etc., y en sus métodos reemplazados sólo tiene que llamar super()con { protocol: 'https' }o { 'HTTPS' => 'on' }fusionado en los argumentos.

Además, tenga en cuenta que 'HTTPS' => 'on'puede haber sido desaprobado en favor de protocol: 'https'.


Mensajes similares con posibilidades adicionales:

Probar una solicitud HTTPS (SSL) en Rails RSpec

Una manera sencilla de probar una solicitud HTTPS (SSL) con RSpec

Fuerza HTTPS / SSL para todas las características del controlador / solicitud por rspec

Respondida el 14/02/2019 a las 23:24
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more