Итак, я пытаюсь сделать что-то, что на первый взгляд должно быть очень простым ...
У меня есть некоторые константы, определенные в:
`
//constants.js
module.exports = {
MY_CONSTANT: "TEST"
}
`
У меня есть файл, который я пытаюсь проверить, который имеет такой ответ:
`
//file to test
//...
if(CONSTANTS.MY_CONSTANT === "TEST")
{...}
...
`
И у меня есть такой тест:
`
//test
it("Should do something when MY_CONSTANT === "TEST, () => {
//This is fine as it is exported as TEST
})
it("Should do something else when MY_CONSTANT !== "TEST, () => {
//This seems annoyingly difficult to get working...
})
`
Я пробовал это
- Не повезло, оно не меняет фактическое значение
Я попытался изменить постоянный экспорт, чтобы вместо этого экспортировать объект (это не сработало)
Я попытался добавить jest.mock (..) для констант в моем тестовом файле и выполнить немодирование в тестах, которые мне не нужны.
Я попытался добавить jest.doMock (...) в тестовую функцию, мне нужно изменить значение. (вместе с jest.resetModules и другим требуется)
Я пытался добавить jest.doMock (...) в тесты beforeEach (вместе с jest.resetModules и другим требованием)
Я действительно в растерянности ... буквально все, что я хочу сделать, это изменить значение свойства перед запуском теста ?
Обновление
Итак, я сделал несколько предложений:
Теперь у меня есть папка mocks рядом с папкой констант
Он содержит файл с именем, совпадающим с файлом фактических констант, и пользовательский экспорт
Затем я добавил jest.mock("../constants);
внутри теста.
Затем я также добавил const funcImTesting = require("../../file").testFunction
в тест.
Тем не менее константа остается неизменной, и тест не пройден