Jest
JestはJavaScript/TypeScriptのテストフレームワークである。
インストール
以下のコマンドを実行し、Jestをインストールする。
1 | |
以下のコマンドを実行し、jest.config.jsを作成する。
1 | |
package.jsonに以下をマージしてnpm run testを実行できるようにする。
| package.json | |
|---|---|
1 2 3 4 5 | |
tsconfig.jsonに以下をマージする。これをしないと次のtest()やexpect()等でエラーが出る。
| tsconfig.json | |
|---|---|
1 2 3 4 5 | |
テストコードを作成する
srcディレクトリ内に*.spec.tsとしてテストコードを書く。
1 2 3 4 5 6 7 | |
npm run testを実行する。
expectはテストケースに1つだけにすること。さもないとデバッグから始めることになる。(アサーションルーレット)
describe
いくつかの関連するテストをまとめるブロックを作成するためのメソッド。
it (test)
テスト。testはitと同機能。
各it()の前に事前処理を行いたい
beforeEach()を実装する。
1 2 3 | |
ファイルの中で1回だけ事前処理を行いたい
beforeAll()を実装する。
1 2 3 | |
toEqual()
オブジェクトを比較する際、toBe()はオブジェクトの参照を比較するが、
toEqual()はオブジェクトの中身まで含めた比較をする。
toBe()はJavaScriptでいう{a: 100}=={a: 100}をやるらしい。参照が違うので結果はfalseになる。
一方でtoEqual()は中身まで見てくれるので楽。
JSON.stringify()して文字列で比較する必要はないらしい。
非同期で例外を返すことをテストする
1 2 3 4 | |
ビルトインメソッドをモックする
以下でいけるらしい。(未確認)
1 | |