#javascript #unit-testing #jestjs
#javascript #модульное тестирование #jestjs
Вопрос:
Присоединился к проекту как абсолютный новичок. Моя задача — создавать модульные тесты для существующего JS-кода.
Общая система веб-сайта проекта работает следующим образом (насколько я понимаю): Python Django содержит всю логику, базу данных и правила над html-шаблонами, когда JS-файлы работают как «виджеты», которые помогают редактировать html-код на странице.
В основном все файлы JS похожи:
var WidgetSmart = (function() {
var map
function create_event() {
$('.leaflet-pm-toolbar').addClass('leaflet-pm-toolbar-disable')
/*
* lines of code
*/
another_function();
}
function another_function(){
/*
* lines of code
*/
}
return {
init: function(map_obj) {
map = map_obj
create_event()
}
};
}());
Как сказал мой коллега, все return
это делается по соображениям безопасности (инкапсуляция методов).
-
Для этого примера, как я полагаю, мне нужно проверить работу
create_event
функции (иanother_function
?), Но как выбрать и протестировать только эту часть? -
Как правильно выполнить модульное тестирование этих файлов? (с помощью mocks или другого дополнительного?) Или необходимо перестроить этот код?
Комментарии:
1. Вы этого не делаете. Вы тестируете через общедоступный API, метод init . В противном случае вы нарушаете инкапсуляцию, которую должен обеспечить IIFE.