В моем приложении я установил глобальную переменную в своем собственном файле.Это прекрасно работает в моем приложении, но нарушает мои модульные тесты для файлов, которые в этом нуждаются.
Это в основном на корневом уровне и в своем собственном файле, который выглядит примерно так:
global.MY_GLOBAL_VAR = require('my-global-var').MY_GLOBAL_VAR
Это позже импортируется в мой файл, который необходимо протестировать, и, как уже упоминалось ранее, работает нормально, когда приложение работает нормально.Так это будет выглядеть примерно так:
// doSomething.js
require('MY_GLOBAL_VAR')
module.exports = function doSomething () {
// do stuff
}
Поэтому, когда я пытаюсь написать модульный тест для doSomething.js
, я получаю следующую ошибку:
1) "before all" hook
GET /
{ TypeError: MY_GLOBAL_VAR is not a constructor
Когда я делаюНа нем console.log, его значение возвращается как undefined
.Интересно, что если я запускаю node doSomething
, то MY_GLOBAL_VAR
будет таким, как ожидалось (что является функцией).
Я попытался немного изменить мою первоначальную команду тестирования, но безрезультатно.Вот как это выглядит в настоящее время:
"test": "mocha --- globals MY_GLOBAL_VAR -require @ babel / register --require dotenv / config --require ./MY_GLOBAL_VAR.js --watch-extensions js \ "{,! (node_modules) / ** /} *. test.js \" "
(Первоначально у него не было аргументов --globals
или требованияMY_GLOBAL_VAR
file.
Есть идеи, как это решить?