Действительно ли препроцессор, такой как Babel, необходим Jest для работы с моим проектом машинописного текста?

Мне нужно добавить модульный тестовый пример для моего реагирующего приложения, написанного с использованием машинописного текста. Я выбрал Jest для выполнения модульного теста в своем приложении, но у меня есть сомнения, требуется ли Babel в качестве препроцессора для Jest или мой Jest будет работать без препроцессора.


person Manoj Kumar Nagaraj    schedule 23.09.2019    source источник
comment
Не ответ, но вот дополнительная информация: jestjs.io/docs /en/getting-started.html#using-typescript   -  person Rengers    schedule 23.09.2019
comment
Да, вам нужен препроцессор, чтобы исходники можно было скомпилировать.   -  person Jake Holzinger    schedule 23.09.2019


Ответы (1)


Jest работает как приложение JavaScript на Node.js.

Когда он запускается, он ищет все ваши тестовые файлы.

Когда он находит тестовый файл, он применяет все настроенные преобразователи перед запуском способом, указанным в тестовой среде.

jsdom — тестовая среда по умолчанию, которая запускает скрипт с JSDOM ВМ.

node — это еще одна часто используемая тестовая среда, и она запускает скрипт в контексте.

Это означает, что все, что не является простым JavaScript (TypeScript, JSX и т. д.), должно быть преобразовано, прежде чем его можно будет запускать в любой из этих тестовых сред.

Babel — наиболее распространенный преобразователь, и Jest имеет некоторую Babel специфичную конфигурацию, которая делает легче начать...

...но Babel не единственный вариант и вы можете указать любой преобразователь, который вы хотите, в Jest конфигурация, вы даже можете создать свой собственный преобразователь, если хотите...

... но да, любой TypeScript необходимо преобразовать в обычный JavaScript, прежде чем он сможет запускаться Jest в среде jsdom или node.

person Brian Adams    schedule 24.09.2019