Тестирование приложений KnockoutJS с помощью JestJS

#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 /…