3. Dependency Injection ● SUT をどう設計すれば、ランタイムに依存オブジェ クトを差し替えられるだろうか? ● クライアントが SUT に対して依存オブジェクトを提供す れば良い ● テストする際には、 SUT を依存から独立してテストでき るのが望ましいが、依存クラス名などがハードコードさ れていると難しい ● Dependency Injection は、 SUT に対する依存オブ ジェクトをテスト時に差し替えるのに使える 4. How It Works ● クライアントコードやシステムの設定部(ファイル/ コード)で、 SUT が実行時に依存するオブジェクトを 渡せるようにする ● この設計のポイントは、 依存が “front door” から 渡せるようになっているところ ● つまり、「依存を渡す」ということも SUT の API の一部 になる ● 依