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

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

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

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

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


person badunk    schedule 13.06.2012    source источник


Ответы (2)


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

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

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

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

person badunk    schedule 24.06.2012
comment
Воспроизводят ли js-fixtures также загрузку JSON, например getJSONFixture() в jasmine-jquery? - person Philip Bulley; 11.10.2013
comment
нет, в настоящее время это не поддерживается - я рассмотрю это как улучшение. Приветствуется PR: github.com/badunk/js-fixtures/issues/12 - person badunk; 13.10.2013
comment
Это все еще так? В Mocha есть функции настройки и демонтажа, и они поддерживают запуск тестов в браузере. - person Indolering; 23.04.2015

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

person Chris Bosco    schedule 09.07.2012
comment
JSDOM и Zombie немного проблематичны. Например, нет поддержки classList, dataset и кучи других вещей, которые я хотел использовать. Кажется, я возвращаюсь к фантомам с этим. - person Jani Hartikainen; 22.02.2015