Как мне запустить некоторую конфигурацию перед каждым запуском теста Jest?
-
21-12-2019 - |
Вопрос
Я пишу тесты для приложения React, которое использует Fluxxor для предоставления диспетчера событий.Чтобы это работало, нужно сказать Jest, чтобы он не имитировал несколько модулей, которые используются внутри и предоставляются самим Node.
Это означает, что я не могу просто добавить их в unmockedModulePathPatterns
config, и вместо этого вам придется использовать такой код:
[ 'util', 'events' ].forEach(function (module) {
jest.setMock(module, require.requireActual(module));
});
Однако я не могу найти нигде полезного, чтобы его разместить.у меня есть setupEnvScriptFile
который устанавливает несколько глобальных переменных, которые я использую почти во всех своих тестах, но jest
Объект, похоже, недоступен в этом контексте, поэтому я не могу просто установить там макеты.
В качестве временной меры я обернул приведенный выше код в функцию, которую вызываю в начале любого describe
блокирует тестирование магазинов Fluxxor, но оно далеко от идеала.
Решение 2
Кажется, что ответ, по крайней мере на данный момент, такой: «В этом случае вы не можете», но есть проблемы с двумя изменениями, которые необходимо внести для его поддержки.
https://github.com/facebook/jest/issues/106 https://github.com/facebook/jest/issues/107
Другие советы
Попытался ли ты config.setupTestFrameworkScriptFile?Похоже, это подходящее место для исправления API, согласно документации.
Кстати, вот решение, которое мы использовали для добавления поддержки Fluxxor и React-Router в наши тестовые спецификации.