我正在使用protractor为我的角度页面编写 e2e 测试。我使用 $httpBackend 来模拟由 $http 发送的请求但是在一个旧页面中我发现了 jquery ajaxFrom 插件,它通过 jquery ajax 发送调用。我注意到它不能被 $httpBackend 嘲笑
嘲笑这些东西的最佳解决方案是什么?
我正在使用protractor为我的角度页面编写 e2e 测试。我使用 $httpBackend 来模拟由 $http 发送的请求但是在一个旧页面中我发现了 jquery ajaxFrom 插件,它通过 jquery ajax 发送调用。我注意到它不能被 $httpBackend 嘲笑
嘲笑这些东西的最佳解决方案是什么?
经过调查,我发现了一种非常简单的方法来处理来自角度页面的 jquery ajax 调用(由 jquery ajaxForm 插件制作)在我们的测试规范中,我只是把
browser.executeScript( '$.fn.ajaxForm = function(form){return{submit: function(){form.success([{result: "ok"}]);}}}' );
因此,我以这种方式模拟了 jquery ajaxForm 插件发送的请求。
同样,我们可以模拟原生 JS XMLHTTPRequest 对象
window.XMLHttpRequest = function(){
return{
send: function(){return true;},
open: function(){return true;},
status: 200,
responseText: '{result: "ok"}',
getAllResponseHeaders: function(){return true;},
readyState: 4
}
}