Есть ли способ написать модульный тест для функции javascript, которая вызывает html-элемент и что-то с ним делает?

#javascript #html #unit-testing #jestjs #mocha.js

Вопрос:

У меня есть такая функция:

 function modaldisplayer(){
   $('.mymodal').modal('show');
   return 'success';
}
 

Кроме того, у меня есть функция foo, которая содержит modaldisplayer(); в ней. Я использую мокко, джест и чай в качестве основы. Как я могу выполнить модульное тестирование функции foo? Мокко не видит .модальный(«показать») как функцию.

Ответ №1:

Вы должны посмотреть, что $('.mymodal').modal('show'); делают изменения в дереве DOM. Скорее всего, это займет несколько элементов и переключит некоторые CSS-классы.

Тогда ваш тестовый код может просто проверить эти элементы и классы, как это

 expect($('some modal element').hasClass('e.g modal-visible')).toBeTrue();