10

我希望将 Jasmine 测试转换为 Mocha 测试,因为它能够执行 Before(all)、报告功能以及对咖啡脚本的支持。

我无法找到的一件事是 Mocha(或与兼容的断言库一起使用)是否支持像 jasmine-jquery 那样的固定装置(https://github.com/velesin/jasmine-jquery)。Mocha 是否存在这样的功能?

我正在尝试测试一些操纵 DOM 的浏览器内代码(因此我将使用 html 测试运行程序运行它)。我不想使用zombiejs,因为我更喜欢在我正在测试的环境中运行它。

编辑:仅供参考,在寻找解决方案时,我遇到了使用 grunt + mocha 和 phantomjs 实现。这也不适用于我的情况,因为我想使用自定义版本的 webkit。

4

2 回答 2

11

据我所知,答案是否定的。这可能是因为 Mocha 最初是为了支持 node.js。在节点中,jasmine-jquery 中的固定装置的概念不存在,因为 DOM/浏览器不存在。

看看对 jasmine-jquery 插件的支持,我现在意识到自己构建这个功能可能并不难。基本机制是使用 jQuery 将外部模板添加到 DOM,同时保留对它的引用,以便清理和缓存成为可能。

如果我决定在 github 上发布一些东西,我会更新这个答案

编辑:这里是 - https://github.com/badunk/js-fixtures。代码和规范基本上是从 jasmine-jquery 中复制的,但已删除了依赖项。

于 2012-06-24T04:16:38.220 回答
0

你试过僵尸.js吗?它与 NPM 一起安装,似乎与测试框架无关。

这给了我一个功能齐全的窗口对象,我可以用 jQuery 来装饰它。

Browser = require 'zombie'

browser = new Browser()
global.window = browser.window
require '../src/js/vendor/jquery-1.7.1.min.js'

更新:

我重新审视了这个问题,看起来 jquery + jsdom(通过 NPM)似乎是一个更流行和轻量级的解决方案。示例: http: //www.netboy.pl/2012/10/testing-jquery-code-with-mocha-chai-and-jsdom/

于 2012-07-09T16:39:06.220 回答