У меня есть контейнер в Reaction-native, который импортирует типичные функции, которые мы обычно храним в каталоге utils
, например capitaliseWord()
или что-то еще.
Одна из функций этого модуля utils
использует t
, поэтому мы импортируем i18n
в эту папку utils
, чтобы иметь возможность использовать t
Мы используем languageDetector
внутри нашего i18n
для определения языка мобильного телефона пользователя. Поскольку languageDetector
требуется deviceLocale
(например, в Великобритании, США, США и т. Д.), А Jest работает в другом контексте, если я попытаюсь протестировать контейнер, я получу Cannot read property 'deviceLocale' of undefined
.
Итак, я создал каталог __mocks__
вручную (как https://jestjs.io/docs/en/manual-mocks#mocking-user-modules состояний) и создал свой собственный i18n
, который просто вводит строку deviceLocale
вручную, чтобы иметь возможность запускать тесты.
Оказывается, тест игнорирует __mocks__/i18n
и указывает прямо на оригинал ... Есть идеи, что может пойти не так?
И мой шутливый конфиг внутри package.json
https://gist.github.com/e00dd4ee41b06265632d3bcfe76e7cb0
оригинал i18n.js
https://gist.github.com/pavilion/3c48c6017a82356914f0ad69d7251496
издевались i18n.js
https://gist.github.com/pavilion/17e322340581fb948ed7e319ae4a5ac9 (обратите внимание, что клавиша detect
внутри languageDetector
была подвергнута насмешке вручную)
Компонент для тестирования
https://gist.github.com/pavilion/20dc0c5b1a6d2ee709b7a71ec7b819c1
utils.js
https://gist.github.com/pavilion/1c5df0f71d50462d75234365ae1e4aaf
Comp.test.js
https://gist.github.com/pavilion/2a84880bee3a99fa51fc3e28cfa8f913
Ошибка:
https://gist.github.com/pavilion/012ee0889ebbe2b93b2108d93543e19c