Поскольку импорт TempComponent
оценивается перед тестовым кодом, вам нужно будет смоделировать стили в начале процесса. Вызов mockImplementation происходит слишком поздно в процессе.
Есть два способа сделать это: передать фабрику в jest.mock
или использовать ручной макет. Ручной макет работает для вас, но вы говорите, что хотите что-то локальное для теста, поэтому вы захотите использовать заводской параметр. Вот как.
Смоделируйте импорт styles
вместо импорта core
. Используйте второй аргумент jest.mock, «параметр фабрики модулей», чтобы передать функцию фабрики модулей: функцию, которая возвращает объект, который заменяет импорт styles
. Для ваших целей это означает, что объект должен иметь функцию withStyles
:
jest.mock('@material-ui/core/styles', () => ({
withStyles: styles => component => component
}));
Нет необходимости импортировать withStyles
в ваш тест или вызвать mockImplementation; Вы можете удалить эти строки.