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 | |