反向 Zen 编码

发布于 2024-10-15 10:18:13 字数 300 浏览 9 评论 0原文

我正在编写一个 JavaScript 单元测试套件,我想添加的功能之一是能够断言某个元素及其子元素与给定的 HTML 结构匹配。

我的第一个想法是使用 jQuery(好吧,Sizzle)并要求用户编写 Zen Code 语句做出断言。我的第一个问题是“以前这样做过吗?我可以偷它吗?”。如果没有,是否有打印规范说明如何解析 Zen Code 语句?鉴于 Sizzle 的强大功能,我可以走什么捷径吗?

I'm writing a JavaScript unit test suite and one of the features I'd like to add is the ability to assert that a certain element and its children match a given HTML structure.

My first idea is to use jQuery (well, Sizzle) and ask that users write Zen Code statements to make assertions. My first question is "Has this been done before? Can I steal it?". If not, is there a specification printed anywhere for how to parse a Zen Code statement? Are there any shortcuts I could make, given the power of Sizzle?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

英雄似剑 2024-10-22 10:18:13

我认为你可以通过 sizzle + http://api.jquery.com/size/ 到达那里。

Zen Code 查询示例为“div#page>div.logo+ul#navigation>li*5>a”。在 jQuery 中测试页面是否具有相同的结构就像 $("div#page > div.logo + ul#navigation > li > a").size() == 5 一样简单。

除非您的用户是已经熟悉 Zen Code,使用像assertSelects(selector, number_of_returned_items)这样的API进行测试应该更舒服。

I think you can get there with sizzle + http://api.jquery.com/size/.

The example Zen Code query is "div#page>div.logo+ul#navigation>li*5>a". Testing if a page has that same structure in jQuery would be as easy as $("div#page > div.logo + ul#navigation > li > a").size() == 5.

Unless your users are already familiar with Zen Code, tests with an API like assertSelects(selector, number_of_returned_items) should be cozier.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文