ロンドン学派(単体テスト)
from 古典学派とロンドン学派の違い
もっとも著名な提唱者が書いたのが実践テスト駆動開発(翔泳社)で読める
この学派はテスト対象システム(System Under Test: SUT)から協力者オブジェクト(collaborator)を隔離することだと考える
すなわちテスト対象となるクラスが他のクラスに依存するなら、その依存は全てTest Doubleにおきかえなければならない
ただしイミュータブルであれば置き換える必要はない
共有依存と可変依存が協力者オブジェクトである
利点
失敗したときに、コードベースのどこで問題が起こったのか明確になる
オブジェクトグラフの分離
オブジェクトグラフとは同じ問題を解決するために結び付いたオブジェクトの集まりのこと
オブジェクトの複雑な依存関係をシンプルにでき、1テストケース=1クラスの試験という可読性の高いスタイルが無理なくできる
特に複雑なシステムでは循環依存していることがあるが、これを断ち切ることが出来る