Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🩹: Jestでテスト実施前のモッククリア方法を修正 #1125

Merged
merged 3 commits into from
Apr 27, 2023

Conversation

creature-water-valley
Copy link

✅ What's done

Expo SDK 48アップグレードの対応で、App.test.tsxを実行すると以下のエラーが発生

Error: Hooks cannot be defined inside tests. Hook of type "beforeEach" is nested within

jest/__mocks__配下のモックファイルは、モックしているライブラリなどがimportrequireされたときに読み込まれます。
テスト対象のコンポーネントの内部で、条件によってrequireするライブラリを切り替えている箇所があり、それが原因でこのエラーが発生したと思われます。

そのため、jest/__mocks__配下のモックファイルでモックをクリアするのをやめて、jest.config.jsclearMocksを有効化する方法で、テスト実施前にモックをクリアします。

  • jest.config.jsclearMockstrueに設定
  • テスト実施前にbeforeEachbeforeAllでモックをクリアしていた箇所を削除
    • 対象は以下で確認
    • git grep mockClear
    • git grep clearAllMocks

Other (messages to reviewers, concerns, etc.)

関連

@creature-water-valley creature-water-valley merged commit 7877641 into master Apr 27, 2023
@creature-water-valley creature-water-valley deleted the fix/jest-mock-clear branch April 27, 2023 06:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants