Поддержка совместимых с Mocha

Я хочу преобразовать тесты Jasmine в тесты Mocha из-за его способности делать до (все), его возможности для создания отчетов и поддержку coffeescript.

Одна вещь, которую я не смог найти, заключается в том, поддерживает ли Mocha (или в сочетании с совместимой библиотекой утверждений) такие инструменты, как jasmine-jquery (https://github.com/velesin/jasmine-jquery). Существует ли такая функция для Mocha?

Я пытаюсь проверить некоторый код в браузере (так что я буду запускать его с помощью html test runner), который манипулирует DOM. Я не хочу использовать zombiejs, потому что я предпочел бы запустить его в среде, в которой я тестирую.

Изменить: просто для справки, при поиске решения я столкнулся с использованием grunt + mocha с реализацией phantomjs. Это также не работает для моего случая, так как я хотел бы использовать пользовательскую версию webkit.

Ответ 1

Из того, что я смог выяснить, ответ - нет. Вероятно, это связано с тем, что Mocha сначала предназначалось для поддержки node.js. В node понятие светильников в jasmine-jquery не существует, потому что DOM/браузер не существует.

Глядя на поддержку светильников для плагина jasmine-jquery, я понимаю, что, возможно, не так сложно построить эту функциональность самостоятельно. Основным механизмом является использование jQuery для добавления внешнего внешнего шаблона в DOM, сохраняя при этом ссылки на него, чтобы можно было очистить и кэшировать.

Я обновлю этот ответ, если я решит выпустить что-то на github

Изменить: вот оно - https://github.com/badunk/js-fixtures. Код и спецификации были по существу скопированы из jasmine-jquery с удаленными зависимостями.

Ответ 2

Вы пробовали 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/