良いテストとはどんなものか,という話をしていて,
- テストを読めば,そのクラスの使い方や仕様がわかる
- テストは論文や証明のように上から順番に読めて,上のほうに簡単な一般的な場合,下のほうに難しい,稀に使う場合が書かれている
- 実装のメソッドと一対一ではなく,ユースケースごとにまとまっている
みたいな話をしていた.
機能拡張のさいには,既存のテストを消して,難しい拡張された難しい場合に書き直すのではなくて,既存のシンプルなユースケースも残しつつ,難しい場合を新たに書き足すべき.シンプルな場合を残しておくと,そのクラスを初めて読むときの手助けになる.いきなり難しいケースから始まると,理解が難しくなってしまう.