如何在命令行中测试 AJAX
How to test AJAX in command line?
假设我在JavaScript
中有一些代码,它使用jQuery.ajax
来调用服务器REST API。
为了测试它,我想
- 使用虚拟 HTTP 服务器,它从静态 XML 文件中读取响应;
- 运行
JavaScript
代码"无头",即没有浏览器; - 在命令行中运行所有这些测试。
看起来我可以将node.js
与嵌入式虚拟HTTP服务器一起使用。有意义吗?你知道任何此类项目的例子(在github或其他地方)吗?
老实说,我还没有做过这样的事情,但我正在评估以下方法:
http://blog.stevensanderson.com/2010/03/30/using-htmlunit-on-net-for-headless-browser-automation/
这真的很有趣,希望这个链接能帮助你入门
使用 node 的主要问题.js 因为它没有提供浏览器将提供的所有内容......包括 XMLHttpRequest。
我正在开发一个库(专有的,仅供内部使用),我正在尝试使用 node.js 进行测试。
对于缺乏 XHR 支持,我的解决方法是将 XHR 的这种实现与一些Microsoft提供的代码结合使用,以将标准 XHR 向后兼容添加到旧 IE。
如果你使用的是jQuery,那么你可能需要修改它,因为jQuery稍后会为旧的IE添加自己的兼容性。
结果如下所示:
var XMLHttpRequest;
if (typeof window !== 'undefined') {
XMLHttpRequest = window.XMLHttpRequest;
}
if (typeof XMLHttpRequest === "undefined") {
console.log("Undefined"); (function() {
try {
XMLHttpRequest = new ActiveXObject("Msxml2.XMLHTTP.6.0");
} catch(e) {}
try {
XMLHttpRequest = new ActiveXObject("Msxml2.XMLHTTP.3.0");
} catch(e) {}
try {
XMLHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {}
try {
XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
} catch(e) {}
//Microsoft.XMLHTTP points to Msxml2.XMLHTTP and is redundant
if (typeof XMLHttpRequest === "undefined") {
throw new Error("This browser does not support XMLHttpRequest.");
}
})();
};
除此之外,在测试套件中运行简单的HTTP服务器是此类问题的常用方法。我还没有实现它,并且正在测试服务器上运行的httpd。
相关文章:
- 如何在rails应用程序中测试AJAX加载的内容
- 当使用Jasmine在JS中测试AJAX调用时,.andReturn(..)和.respondWith(
- 我可以测试jsonp ajax调用的任何公共API
- 如何使用jasmine测试ajax响应
- 如何在ajax请求和it上测试并获得完整的代码覆盖率's使用Jasmine和Blanket.js对jQuery
- 如何模拟ajax对Jasmine测试的调用
- Protractor:测试特定的ajax调用
- 在 Jest 测试中重置 ajax 模拟调用计数
- 使用 ajax GET 请求测试 Django 模板 - ajax 请求不会调用
- JavaScript 中异步 Ajax 调用的测试结果
- 如何在命令行中测试 AJAX
- 测试ajax请求是否尚未以角度发出
- 角度测试:我如何使用ajax测试角度承诺
- 使用ajax打印“;测试”;单击标签时显示到屏幕
- AJAX响应在手机上是空的,但在桌面浏览器测试中是正确的
- 我可以使用AJAX+跨域+jsonp测试URL是否可以访问吗
- 无法测试AJAX ResponseText
- 在测试AJAX应用程序时如何测试断开连接
- 使用localhost测试Ajax
- Javascript:测试ajax请求