【テスト】境界値と例外処理についての考え方


本記事は『フロントエンドのテスト入門』からの学習メモです。

TypeScriptの型注釈による入力値の制約

型注釈を活用することで、例外処理の実装を削減し効率化できます。より詳細な期待値に対応する場合のみ、例外スロー実装が必要になります。

例外のスロー方法

throw new Error("エラーメッセージ")

例外処理のテスト

expect(例外スローが想定される関数).toThrow();

// 正しい書き方
expect(() => add(-10, 110)).toThrow();

toThrow()メソッドの引数にエラーメッセージを指定すると、特定のエラー内容を検証できます。

Errorクラスの拡張活用

カスタムErrorクラスを継承することで設計の柔軟性が向上します。

export class HttpError extends Error();
export class RangeError extends Error();

expect(() => sub(-10, 110)).toThrow(RangeError);

instanceof演算子で異なるインスタンスを区別できます。

考察

  • 例外処理の実装について十分に検討してこなかった
  • テスト実装により、例外処理の重要性を認識
  • 実際のコード開発で実装を通じて習得する方針