Faraday: Página de prueba para nueva documentación

Creado en 9 jul. 2019  ·  4Comentarios  ·  Fuente: lostisland/faraday

Información básica

  • Versión de Faraday: maestro
  • Versión de Ruby: 2.6.3

Descripcion del problema

No hay documentación sobre pruebas con Faraday. Donde trabajo Ruby on Rails se introdujo porque es genial. Se pensó poco en probar las cajas rojas. Me gustaría contribuir con documentación para ayudar a otros.

pasos para reproducir

  • visita la página web.
  • Haga clic en usage
  • siga los siguientes enlaces del pie de página hasta que no pueda continuar hacia la derecha (https://lostisland.github.io/faraday/usage/streaming)
  • observe que no hay pruebas en uso: scream_cat:

Comentario más útil

Gracias por mencionar esto. En respuesta, publiqué un PR para incluir ejemplos de prueba / unidad en vivo y rspec del uso del adaptador de prueba de Faraday: # 1000. Esta es la forma recomendada de probar Faraday, en lugar de las bibliotecas dobles de prueba externas (rspec, mocha, webmock, etc.).

Todos 4 comentarios

Gracias por mencionar esto. En respuesta, publiqué un PR para incluir ejemplos de prueba / unidad en vivo y rspec del uso del adaptador de prueba de Faraday: # 1000. Esta es la forma recomendada de probar Faraday, en lugar de las bibliotecas dobles de prueba externas (rspec, mocha, webmock, etc.).

Me di cuenta de que en ningún momento está probando cosas como tiempos de espera, errores de conexión, etc. ¿Está mal visto el tema o simplemente la forma en que PR # 998 usa?

Supongo que no entiendo la sintaxis

Supongo que no entiendo la sintaxis

Oof, tal vez debería volver a visitar los documentos de prueba de Faraday: /

La sintaxis en # 1000 usa una instancia Faraday::Adapter::Test::Stubs , un objeto stub exclusivo para probar los ciclos de solicitud / respuesta de faraday. Puede usarlo para configurar respuestas simuladas a solicitudes http en una prueba específica.

  it 'parses name' do
    # this block yields a rack response: an array with:
    # response status, http header hash, and response body
    stubs.get('/ebi') do |env|
      [
        200,
        { 'Content-Type': 'application/javascript' },
        '{"name": "shrimp"}'
      ]
    end

    expect(client.sushi('ebi')).to eq('shrimp')
    stubs.verify_stubbed_calls
end

Pido disculpas, obviamente no leí sus problemas lo suficiente. Extrañé totalmente que quisieras específicamente probar las excepciones. Una prueba como esta también funciona (que agregaré a la # 1000):

  it 'handles exception' do
    stubs.get('/ebi') do
      raise Faraday::ConnectionFailed, nil
    end

    expect { client.sushi('ebi') }.to raise_error(Faraday::ConnectionFailed)
    stubs.verify_stubbed_calls
  end

Prefiero implementaciones dobles de prueba específicas como esta al enfoque de burla más generalizado, ya que todavía pasan por todo el flujo de trabajo de solicitud de Faraday. Si un desarrollador quiere usar simulacros de RSpec de todos modos, estará mejor servido con la excelente documentación de RSpec.

Entregado con # 1000

¿Fue útil esta página
0 / 5 - 0 calificaciones