インプット
以下は書籍「フロントエンドのテスト入門」の学習メモとなります。
期待しない値が混入したことを例外をスローすることでデバッグできずく。
これによって例外処理の実装を減らすことができて効率的。
より詳細な期待値に制限する場合などに例外をスローする実装が必要となる。
throw new Error("エラーメッセージ")
例外のテスト
expect(例外スローが想定される関数).toThrow(); // 正しい書き方 // add関数が入力値を0~100までを受け取りそれ以外の値であれば例外をスローする場合。 expect(() => add(-10, 110)).toThrow();
toThrow()
の引数にエラーメッセージを渡すと期待したエラーメッセージが受け取れることを確認できる。
意図どうりに例外がスローされているか?という意識をもって実装に取り組むべき。
instanceof演算子によって異なるインスタンスとして分別できる。
// Errorクラスを拡張 export class HttpError extends Error(); export class RangeError extends Error(); // test内での利用例 expect(() => sub(-10, 110)).toThrow(RangeError);