Tengo algunos métodos en mi aplicación que realizan solicitudes http. ¿Hay una buena manera de simular fallas de red y malas respuestas para las pruebas unitarias?Métodos de prueba que realizan solicitudes HTTP
Respuesta
adecuados Mock Objects debe dejar de realizar tales simulaciones fácilmente; si no está familiarizado con el concepto, hay un buen tutorial aquí.
Para las fallas de la red, nada mejor que desenchufar el cable de su computadora de ethernet (o d/c es inalámbrico) y luego desenchufar el cable que le da acceso a la nube.
Si por malas respuestas te refieres a errores HTTP puedes escribir scripts ASP que siempre arrojarán errores específicos. Si desea probar paquetes HTTP mal formados, tendrá que escribir una aplicación de socket simple para hacerlo.
No estoy seguro de cómo se integra el proceso de desenchufar del cable en su sistema de compilación automático ;-) – assylias
Tire de su cable LAN o apagar el router inalámbrico, mientras que las solicitudes se hacen :)
Lo que hacemos en esta situación es abstraer la capa que está haciendo la llamada. En lugar de hacer que su lógica haga directamente la solicitud http, haga que su código invoque una función. Dentro de esa función puede ser algo como:
if (in_test) {
response = get_test_response();
} else {
response = make_http_request();
}
, entonces puede tener sus pruebas de unidad establecen algún valor accesible por la función get_test_response(). De esta forma, puede cambiar programáticamente el resultado de esa llamada.
Por lo general, es mala forma tener ese tipo de lógica en tu aplicación. Yo recomendaría usar un objeto simulado. – codecraig
Envuelva la biblioteca que realiza las llamadas HTTP (por ejemplo, java.net.URLConnection o Commons HttpClient) detrás de una interfaz, y luego escriba implementaciones o simulaciones de esa interfaz que simula las condiciones de falla.
Su interfaz solo puede representar las operaciones que su aplicación necesita realizar, en lugar de todo el rango de la funcionalidad del cliente HTTP.
Tal vez Spring test mocks sería de alguna ayuda.
- 1. ¿La mayoría de los navegadores realizan varias solicitudes HTTP al mostrar un PDF desde el navegador?
- 2. Asignación de solicitudes HTTP a respuestas HTTP
- 3. Examinando solicitudes AJAX HTTP utilizando Web Inspector
- 4. Escuchar solicitudes HTTP
- 5. solicitudes http con powershell
- 6. Servidor de prueba HTTP que acepta llamadas GET/Post
- 7. Plugin de Firefox que intercepta ciertas solicitudes HTTP
- 8. Interceptar y anular solicitudes HTTP de WebView
- 9. Solicitudes HTTP paralelas en ruby
- 10. Rieles: ¿solicitudes HTTP sin bloqueo?
- 11. Solicitudes HTTP asíncronas en PHP
- 12. Solicitudes HTTP con autenticación básica
- 13. Capturar solicitudes HTTP con Javascript
- 14. determinando los métodos de autenticación HTTP http
- 15. Necesito un ejemplo que muestre cómo hacer solicitudes asincrónicas HTTP
- 16. Las solicitudes http de Node.js no funcionan
- 17. ¿Reduce las solicitudes HTTP de 1000 imágenes?
- 18. Hacer múltiples solicitudes HTTP de forma asíncrona
- 19. Autenticación implícita en solicitudes HTTP de clojure (?)
- 20. Enrutamiento de solicitudes http a través de Node.js
- 21. Código de prueba de unidad que llama a métodos estáticos
- 22. TDD: Métodos de "solo prueba"
- 23. Cómo unitar los métodos de prueba que usan System.Web.Security.Membership inside?
- 24. código de prueba que llama a los métodos nativos
- 25. ¿Es legítimo http/rest tener solicitudes comprimidas?
- 26. Emitir solicitudes múltiples utilizando HTTP/1.1 Pipelining
- 27. Cómo analizar correctamente las solicitudes HTTP entrantes
- 28. ¿Cómo hacer solicitudes HTTP paralelas en Heroku?
- 29. Habilitar solicitudes Http PUT en .NET MVC
- 30. HEAD Solicitudes HTTP en Rails 3
+1 Burlarse, no te metas con tirar de los cables. –
el enlace del tutorial ha expirado. – tokhi