#knockout.js #jestjs
#knockout.js #jestjs
Вопрос:
В настоящее время я использую Jasmine для тестирования своего приложения Knockout вместе с requirejs. Возможно ли протестировать одно и то же приложение с помощью JestJS? Я намерен запустить тест параллельно.
Спасибо, Анкит
Ответ №1:
Jest не поддерживает requirejs (модули AMD) из коробки, поэтому вам придется перенести ваши модули AMD в CommonJS с помощью scriptPreprocessor.
Кроме того, если вы используете более продвинутые функции requirejs, такие как плагины / пользовательские правила разрешения, у вас могут возникнуть дополнительные проблемы.
Комментарии:
1. что, если мои модули для тестирования используют RequireJS? Могу ли я импортировать те же зависимости RequireJS в тестовый файл Jest с помощью import?
2. @AnkitTanna Как я уже сказал, Jest не поддерживает модули AMD, поэтому вам понадобится какой-то способ, позволяющий AMD взаимодействовать с модулями CommonJS или ES, такими как этап переноса — мне не удалось найти преобразование AMD -> CommonJS babel, однако все они, похоже, идут от CommonJS -> AMD. Возможно, стоит попробовать написать свои собственные, возможно, используя babeljs.io/docs/plugins//transform-es2015-modules-commonjs в качестве проводника.
3. Спасибо @riscarrott. Я планирую перенести свой модуль AMD в CommonJS, а затем протестировать код. Я не уверен, следует ли это практиковать, но это экономит время в тестовом костюме, и это все, что имеет значение. skookum.com/blog /…