第3章 検出と分離

テストを書く前に依存関係を排除する理由

  1. 検出
    • コードの計算した値にアクセスできない時に、それを検出するために依存関係を排除する
  2. 分離
    • コードをテストハーネスに入れて実行することすらできない時、分離するために依存関係を排除する

あるコードだけ独立して実行し、何が行われるかを確認したい場合、大抵は他のコードに対する依存関係の排除を行う必要がある
依存している箇所を別のコードと置き換えることができれば、テストを描けるようになる
オブジェクト指向では、擬装オブジェクト(fake object)と呼ばれる

モックオブジェクト(mock object)とは、擬装オブジェクトを進化させたもの
モックオブジェクトでは想定されるメソッド呼び出しを事前に設定し、メソッド呼び出しが実際に行われたかを確認する仕組み
大抵の場合、単純な擬装オブジェクトで事足りる

感想

擬装オブジェクトは、いわゆるスタブとかモックとかと呼ばれるものかな(違った)
RSpecとかでモックはAPI通信部分で、想定されるレスポンスを書いているけど、これも単純な擬装オブジェクトなのかな