Как мне запустить некоторую конфигурацию перед каждым запуском теста Jest?

StackOverflow https://stackoverflow.com//questions/25017484

Вопрос

Я пишу тесты для приложения 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 в наши тестовые спецификации.

https://gist.github.com/adjavaherian/a15ef0461e65d58aacd2

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top