今さら Expo SDK36 で jest を使ってユニットテストしたい

Expo のアプリで、ロジックが複雑なユーティリティ関数をピンポイントでテストしたい。しかもソースは TypeScript。

とりあえず下記に沿って jest をインストールしてテストを書いてみたが、ESM のインポートで書くにはどうすれば??と躓いた。

https://jestjs.io/ja/docs/getting-started

Expo でのやり方を調べると、jest-expo をインストールしろと書かれている。

https://docs.expo.dev/guides/testing-with-jest/

が、この手順だとバージョンが新しすぎて下記のエラーが…

Cannot find module ‘react-native/Libraries/LogBox/LogBox’ from ‘setup.js’
    at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:299:11)
    at Object. (node_modules/jest-expo/src/preset/setup.js:155:6)

ということで、一旦すべて yarn remove してから下記でうまくいった。

yarn add jest-expo@36.0.1 --dev
yarn add --dev @types/jest

今のところ、ビュー側をテストするつもりはないので react-test-renderer 入れなかった。

設定は下記の通り。

  "scripts": {
    :
    "test": "node_modules/.bin/jest"
  },
  "jest": {
    "preset": "jest-expo"
  },

無事 yarn test で実行できた。

コメントを残す