2012-03-15 13 views
7

En mi proyecto Rails 3.2, envío una solicitud http ocasional a http://jsonip.com desde Javascript. Pero cuando ejecuta Cucumber con la etiqueta @javascript, la solicitud se envía con mucha frecuencia. Obviamente, esto es muy indeseable y me gustaría rescindir tales solicitudes. Ahora, pensé que podía usar el stub_request de webmock para esto, así:Aplazamiento de solicitudes de Ajax en Pepino/Capibara/Selenio?

Before do 
    stub_request(:any, /.*jsonip.*/).to_return(:body => '{"ip":"24.104.73.2","about":"/about"}') 
end 

pero incluso con esto en su lugar, jsonip se llama a partir de Javascript. Y así descubrí que webmock en realidad no resuelve la solicitud de Ajax (al menos no con la declaración anterior stub_request).

¿Cuál es la forma correcta de indicar la solicitud de Ajax en una configuración de pepino/capibara/selenio?

Respuesta

3

La única manera de hacerlo es cambiar la url o deshabilitar la solicitud según la aplicación de entorno que se ejecute.

No puede adjuntar esta solicitud desde el lado de la prueba porque esta solicitud se realiza por el navegador no por su aplicación.

También como solución o solución temporal para el servidor de CI, puede deshabilitar esta url en el archivo de hosts.

+0

Hmmm, sí ... tenía miedo de eso. Lo tengo que trabajar ahora simplemente generando una variable de Javascript que contiene 0 cuando el entorno Rails es desarrollo, 1 cuando es prueba y 2 cuando está en producción. Luego evito que Ajax llame al servicio externo cuando la variable es igual a 1. No es la solución más hermosa, pero funciona. Gracias, Iafonov. –

Cuestiones relacionadas