Nel mio progetto Rails 3.2, invio una richiesta HTTP occasionale a http://jsonip.com
da Javascript. Ma quando si esegue Cucumber con il tag @javascript
, la richiesta viene inviata molto frequentemente. Questo è ovviamente molto indesiderabile e vorrei cancellare tali richieste. Ora, ho pensato che avrei potuto utilizzare la stub_request
da webmock
per questo, in questo modo:Stubing richieste Ajax in cetriolo/capibara/selenio?
Before do
stub_request(:any, /.*jsonip.*/).to_return(:body => '{"ip":"24.104.73.2","about":"/about"}')
end
, ma anche con questo posto, jsonip
viene chiamato da JavaScript. E così ho trovato che webmock
non stuba effettivamente la richiesta Ajax (almeno non con la precedente dichiarazione stub_request
).
Qual è il modo giusto per bloccare la richiesta Ajax in una configurazione Cucumber/Capybara/Selenium?
Hmmm, sì ... ho avuto paura di questo. Ora ho potuto farlo funzionare semplicemente generando una variabile Javascript che contiene 0 quando l'ambiente Rails è in sviluppo, 1 quando è test e 2 quando è in produzione. Quindi prevengo la chiamata Ajax al servizio esterno quando la variabile è uguale a 1. Non è la soluzione più bella, ma funziona. Grazie, Iafonov. –