STERFIELD

2022/02/24

Typescriptでの単体テストの書き方(Jest)

Typescriptでの単体テストの書き方(Jest)
Typescriptに対応したテストフレームワークのJestを使って、テストをする方法を紹介します。

Jestとは

JavaScript/TypeScriptのテストフレームワークとしては以下のようなものが有名です。
  • Mocha
  • Jasmine
  • Jest
これらの利用状況をnpmのトレンドで比較するとjestが圧倒的によく利用されていて、そのトレンドが継続しているとわかります。
参考: https://www.npmtrends.com/jasmine-vs-jest-vs-mocha
JestをTypescriptのテストに使用するには、tscでJavaScriptにコードを変換する方法と、ts-jestを使う方法が公式で紹介されています。
今回は、ts-jestを使う際の導入方法を紹介します。

Jestのインストール、設定

必要なライブラリのインストール:
jestの設定ファイル(jest.config.js)の作成:

jest.config.jsは作成直後には、以下のようになっています。

ts-jestを使ってtypescriptを処理する場合には、preset: 'ts-jest'の設定が追加で必要となるだけです。
Typescriptのための面倒な準備がなく便利です。
特定のファイルパスのテストのみを実行したい場合、testMatchという項目を追加します。

これにより、xxxx.test.tsxxxx.spec.tsのような名前のファイルがテスト対象になります。
jestのテストコマンドをpackage.jsonに追記します。

これで、npm run testでテストが実行されます。

テストケースの作成

非常に簡単な例として、typescript_jest_sample/src/sum.tsの以下のような関数をテストする場合を想定します。

テストケースを、typescript_jest_sample/src/sum.test.tsに書きます。

“1と2を足したら3になる”というテストです。
コードの書き方に問題がないなら、パスするはずのテストです。

テストの実行

npm run testでテストを実行すると、以下のようにテストがパスしたと表示されます。

このように、ts-jestを導入したことで、事前にJavaScriptに変換することなくjestでのテストが実行できました。

まとめ

今回は、ts-jestを使ってTypescriptのユニットテストを実行する方法を紹介しました。
面倒な設定が不要ですぐに利用でき、大変便利でした。
Typescriptでの開発時に是非利用してみてください。

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい