Simulé la API REST usando una combinación de cucumberjs, phantomjs con la configuración del servidor proxy en 127.0.0.1 y enganchando un proceso node.js con http-proxyy nockallí. CucumberJS no es la parte importante, puede escribir el escenario de prueba de cualquier manera, el resto es la clave de la simulación. Puede burlarse simplemente por datos de solicitud de devolución de coincidencias, pero también puede filtrar por patrones y enganchar la función de devolución de llamada para producir una respuesta, de modo que pueda simular cualquier nivel de granularidad que necesite (en extremo terminando con un servidor de demostración completo, pero puede hacerlo de forma incremental).
Funciona muy bien:
- Phantomjs solicita un URI.
- La solicitud va al servidor proxy en 127.0.0.1:port.
- Su proceso node.js lo envía de forma transparente hacia adelante usando
http-proxy. Entonces, cualquier carga "normal" (páginas, imágenes) funciona.
- Si elige interceptar algunas solicitudes (API, principalmente) que usa
nockpara ello.
En mi escenario, lo combiné con las pruebas de pepino js en el mismo proceso, por lo que fue como:
- La prueba corre.
- En él se establecen
nockHTTP burla para el escenario se pone a prueba.
- Carga una página en phantomjs a través del protocolo Selenium.
El resto es como se muestra anteriormente en este párrafo (es decir, es un poco un ciclo, yo, como corredor de prueba, le pido a phantomjs que cargue una página, que me reenvía todas las solicitudes y las reenvío a la red; o interceptar ellos si es la API probada).