Тестирование элементов с помощью jQuery-Chai

У меня есть несколько функций, которые используют jQuery. И у меня возникли проблемы с пониманием того, как правильно протестировать их с помощью jQuery-Chai в Mocha+Chai.

Я вижу список утверждений в плагине jQuery-Chai. Однако я не понимаю, где мы берем данные DOM для запуска этих утверждений?

В идеале я хочу вставить строку html. Запустите на нем функцию. И используйте утверждение jQuery-Chai для проверки.

Может ли кто-нибудь помочь прояснить, где я мог бы включить приспособление для проверки этих функций?

Заранее спасибо.

Использование: Testem с Mocha+Chai.


person Adam    schedule 25.02.2014    source источник
comment
Я думаю, что это позволяет вам использовать jQuery только в самих тестах, но не имеет ничего общего с тем, что вы тестируете, то есть с функцией в вашем приложении, которая использует jQuery, поэтому ваша функция не может быть протестированы, потому что jQuery не будет определен.   -  person vsync    schedule 14.11.2015


Ответы (1)


Как вы заметили, chai-jquery предоставляет только утверждения, которые вы можете использовать для элементов DOM. Вам нужно будет использовать другую библиотеку для фактического заполнения DOM. Поскольку вам уже нужно включить jQuery для работы chai-jquery, самым простым решением может быть используйте функцию jQuery append() для добавления дочерних элементов в DOM, а затем удалите их в конце протестируйте с помощью функции jQuery remove().

В качестве альтернативы, если вы хотите немного абстрагироваться от манипуляций с DOM, вы можете попробовать использовать библиотеку фикстур. Для этой цели мне больше всего нравится js-fixtures. Вы все еще можете легко вставить одну строку html, используя функцию set(), если это все, что вам нужно:

fixtures.set('<div>Your html here</div>');

Однако, если ваш тестовый HTML-код становится более сложным, вы можете извлечь его в образец HTML-файла и полностью загрузить его в DOM с помощью функции load():

fixtures.load('yourTestPage.html');

Наконец, когда ваш тест закончен, вы можете легко очистить прибор с помощью fixtures.cleanUp().

person Nathan Thompson    schedule 03.10.2016