【テスト】境界値と例外処理についての考え方
本記事は『フロントエンドのテスト入門』からの学習メモです。
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演算子で異なるインスタンスを区別できます。
考察
- 例外処理の実装について十分に検討してこなかった
- テスト実装により、例外処理の重要性を認識
- 実際のコード開発で実装を通じて習得する方針