古典学派(単体テスト)
古典学派は各テストケースをお互いに影響を与えることなく個別に実行できるようにしなくてはならないと考える
CIとかで実行する現代ではほぼ常識となっている
ロンドン学派はプライベート依存であってもそれが可変依存であるなら置き換えるべきと考える 古典学派は単体の定義は、ある目的を達成するためのクラスの1グループなのであり、必ず1クラスに限定されるわけではない
1つの振る舞いが単体の定義
1つのテストケースはプロダクションコードが解決しようとしている1つの物語(問題領域に関する個別で不可分なシナリオ)について語るべき
プロダクションコードが何をするのか列挙することではなく、振る舞いについて高いレベルから描写すること(非開発者からも分かればベスト)を目標とする
テストで確認すべきはそのテスト対象の振る舞いのみで、テスト対象の実装の詳細は検証すべきではない
ホワイトボックステストは動作検証というより分析(coverage測定)のためのもの
古典学派の解釈を単体テストの定義に埋め込むと、以下のようになる: 実行時間が短いこと
1単位の振る舞い(a unit of behavior)を検証すること
他のテストケースから隔離された状態で実行されること
古典学派の単体の定義より、各テストケースの名前は物語になるべき
{ テスト対象メソッド }_{ 事前条件 }_{ 想定する結果 }のような、凝集度の低い機械的命名をすべきでない