我希望将Jasmine测试转换为Mocha测试,因为它能够执行Before(all),报告功能以及对coffeescript的支持。
我无法找到的一件事是Mocha(或与兼容的断言库一起)是否支持像jasmine-jquery那样的工具(https://github.com/velesin/jasmine-jquery)。 Mocha是否存在此类功能?
我正在尝试测试一些操作DOM的浏览器内代码(因此我将使用html测试运行器运行它)。我不想使用zombiejs,因为我更喜欢在我正在测试的环境中运行它。
编辑:仅供参考,在搜索解决方案时,我遇到了使用grunt + mocha和phantomjs实现。这对我的情况也不起作用,因为我想使用webkit的自定义版本。
答案 0 :(得分:11)
从我能够弄清楚的,答案是否定的。这可能是因为Mocha最初是为了支持node.js。在节点中,jasmine-jquery中的fixture的概念不存在,因为DOM /浏览器不存在。
看看对jasmine-jquery插件的fixtures支持,我现在意识到自己构建这个功能可能并不那么困难。基本机制是使用jQuery向DOM添加外部模板,同时保留对它的引用,以便可以进行清理和缓存。
如果我决定在github上发布一些东西,我会更新这个答案
编辑:这是 - https://github.com/badunk/js-fixtures。代码和规范基本上是从jasmine-jquery复制的,删除了依赖项。
答案 1 :(得分:0)
你试过zombie.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/