- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
jQuery.Deferred is now Promises/A+ compatible jQuery.Deferred objects have been updated for compatibility with Promises/A+ and ES2015 Promises, verified with the Promises/A+ Compliance Test Suite.
The tests can run in either a Node.js environment or, if you set things up correctly, in the browser.
如何在没有 nodejs
验证的情况下在浏览器中运行测试?
请注意,在没有nodejs
的情况下,还没有实现在浏览器中运行测试。 @JaredSmith 的协助对于使用 nodejs
运行测试至关重要。
最佳答案
注释中引用的适配器意味着适配jQuery延迟构造函数以满足spec中的API。 .这样做的方法可能如下(或多或少取自 here ):
var promisesAplusTests = require("promises-aplus-tests");
var jq = require('jquery');
var jsdom = require('jsdom');
jsdom.env('<p></p>', function(err, window) {
if (err != null) {
throw err;
} else {
var $ = jq(window);
var adapter = {};
adapter.deferred = function() {
var deferred = $.Deferred();
return {
promise: deferred.promise(),
resolve: deferred.resolve.bind( deferred ),
reject: deferred.reject.bind( deferred )
};
};
promisesAplusTests(adapter, function (err) {
// All done; output is in the console.
// Or check `err` for number of failures:
if (err) {
console.log(err);
}
});
}
});
此时您需要通过 npm 安装依赖项并运行该文件。请注意,使用 jquery 需要 适当的文档(因此需要 jsdom)。
或者你可以采取简单的方法:
在浏览器中运行,尽管在规范自述文件中有 glib 注释,但仍会涉及一些工作。您将需要使用像 browserify 这样的 commonJS 模块加载器。 Browserify 将填充 native 节点断言库,我相信文件系统 api。 Mocha 应该可以在浏览器中正常运行。然后上面的代码应该运行。
如果你想完全避免使用 node.js(而不仅仅是为了运行测试),您将有更多工作要做。
第 1 步。查找或编写兼容的断言库并将其包含在脚本标记中。
第 2 步。在脚本标记中包含 mocha。
第 3 步。为 require、assert、fs 等编写您自己的 stub 。每个 stub 本身就是一个问题。
第 4 步。使用适配器代码。
是否值得为避免节点而做所有这些都是您的决定。
关于javascript - 如何测试 jQuery 3.0 beta 是否在浏览器中兼容 Promises/A+?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36438228/
我是一名优秀的程序员,十分优秀!