gpt4 book ai didi

javascript - 如何测试 jQuery 3.0 beta 是否在浏览器中兼容 Promises/A+?

转载 作者:行者123 更新时间:2023-11-30 12:01:53 27 4
gpt4 key购买 nike

根据 jQuery 3.0 Beta Released

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.


How To Run

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)。

或者你可以采取简单的方法:

  • git 克隆 jquery 库
  • cd jquery目录
  • npm 安装
  • 永远等待它完成,忽略所有警告
  • npm test - 运行 jquery 单元测试(包括 A+ 套件)

在浏览器中运行,尽管在规范自述文件中有 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com