React Native + TypeScript 環境で Jest でユニットテストを実行するまで

依存ライブラリをインストール

コピーしました!

shell
npm install --save-dev @testing-library/react-native jest ts-jest @types/jest ts-node

jest-setup.ts を作成

touch jest.setup.ts

コピーしました!

jest-setup.ts
import '@testing-library/react-native/extend-expect';

jest.config.ts を作成

コピーしました!

shell
 touch jest.config.ts

コピーしました!

jest.config.ts
module.exports = {
  preset: 'jest-expo',
  setupFilesAfterEnv: ['./jest.setup.ts'],
  transformIgnorePatterns: [
    'node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg)',
  ],
};

jest.config.tsと重複するため、package.json 内にある "jest" のブロックは削除します。

package.jsonscripts に以下のように "test" があることを確認して…

コピーしました!

package.json
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "test": "jest --watchAll"
  },

npm run test でテストを実行できます。