Как указано в комментариях Jonas W , они используют переменную global
, которая является общей для всего вашего приложения.
Использование глобальной переменной очень просто
test.js
global.myObject = 'MyMan'
app.js
require('./test')
console.log(myObject)
Загрузка app.js
отобразит MyMan
Вы можете сказать, что я на самом деле импортирую тестовый модуль, а Jest - нет.
Дело в том, что вы запускаете приложение узла, используя node yourFile.js
, но вы запускаете свои тесты шутов с помощью командной строки jest
.
Это командная строка jest
, которая обрабатывает привязку между своей структурой (методы expect
и test
.) И вашим сценарием.
Это хорошая практика?
Я бы сказал, нет.За исключением случаев, когда вы планируете создать такую библиотеку, как Jest, которая будет иметь собственную программу запуска командной строки и вы хотите предоставлять такие инструменты пользователям вашей библиотеки.
Сила Node живет в модульной организации, не бойтесь их использовать.