Я понимаю, что jest не работает напрямую с webpack, и поэтому любые преобразования, которые включены через webpack в вашей обычной конфигурации, должны быть включены в jest с помощью различных других средств. Поскольку jest поддерживает конфигурацию babel, большинство необходимых преобразований выполнить довольно просто, поскольку webpack также будет использовать ту же конфигурацию babel, но в случае определенных c загрузчиков, таких как css loader или file loader, мы должны внесите изменения в moduleNameMapper в jest, чтобы высмеивать их.
Если вы используете определение плагина в веб-пакете, мы можем повторить то же самое с глобальными переменными в jest.
Одна вещь, на которой я сейчас застрял хотя, чтобы включить функцию замены строки загрузчика, как некоторые конфигурации jest или babel.
Сценарий:
У меня есть некоторые операторы импорта, которые имеют фиктивную строку, такую как:
import sm-specific from blah
И позже sm-speci c заменяется веб-пакетом перед сборкой с использованием загрузчика замены строк. Проблема в том, что в jest нет способа, с помощью которого я могу включить ту же функциональность, и поэтому jest начинает выдавать ошибку при разрешении модуля, поскольку нигде не может найти sm-speci c.
Ожидается, что что-то будет в jest, чтобы sm-speci c можно было заменить до того, как jest запустит тест.
Какие-нибудь указатели?
Обратите внимание, что я не могу использовать глобальные переменные это похоже на то, как я мог бы использовать для definePlugin, поскольку операторы импорта не допускают строки шаблона, а переменные definePlugin должны использоваться в качестве переменных.