javascript - faking xmlhttprequests with casperjs -


i'm writing end-to-end tests casperjs , fake ajax server responses

i've came idea of including simple script mocks xmlhttprequest object , return expected results, following

var ajax_requests = [ ['get', '/jobs', json.stringify(jobs)] ], stubs = stubs || {}; function setup_ajax(){ stubs.server = sinon.fakeserver.create(); _.each(ajax_requests, function(r){ //r[1] = "http://localhost:8000" + r[1] r[2] = [200, { "content-type": "application/json" }, r[2]] stubs.server.respondwith.apply(stubs.server, r) }) stubs.server.autorespond = true; stubs.server.autorespondafter = 2; } 

then call setup_ajax in casper test like

casper.then(function(){ this.evaluate(setup_ajax) } 

but seemingly future ajax requests still avoid xmlhttprequest implementation.

i've tried running setup_ajax on fly, using $.ready() , having called casper too, neither of these worked

more interestingly, checking objects' existence strangely fails.

function setup_ajax(){ return typeof(sinon) } casper.then(function(){ var x = this.evaluate(setup_ajax) casper.log(x) // logs 'null' } 

but sinon included, @ least casper did not cause errors when i've made calls outside setup_ajax function, caused error when deliberately had sinon excluded.

do have ideas on mocking xmlhttprequests under casperjs?

you can use sinon.js fake xmlhttprequest.


Comments

Popular posts from this blog

javascript - backbone.js Collection.add() doesn't `construct` (`initialize`) an object -

php - Get uncommon values from two or more arrays -

Adding duplicate array rows in Php -