テストの目的:ソースコードを保護すること
テストではDBやファイルシステムにアクセスしないこと
目的:テストの実行時間を短くして、少しでも修正をしたら気軽にテストを実行できるようにするため。
→DBアクセス、を最低限にし、実行時間を短く保つのであれば、DBに接続してもよい
→DBからデータを取得する際の絞り込み条件などを変更する場合は、実際にDBに接続しないと保護しながらの変更は難しい。
Mock酔い対策
戻り値が別の関数(Mock)の返す値と等しいテスト
→みればわかるので省略する
条件を満たしたときMockが呼び出されてその戻り値を返す。
→条件を満たさないとき別の値を返すテストがあれば省略、
引数に渡した値が別の関数に渡されるテスト
→省略
引数に渡したオブジェクトのあるプロパティの値が別の関数に渡されるテスト
→省略
引数に渡したコレクションのデータの内条件を満たすものが別の関数に渡されるテスト
→多分必要
フラグを見て対応した関数を呼び出すテスト
→フラグ自体も関数の引数にして、関数内で分岐するように修正して呼び出すテストは省略
→呼び出される関数の方ででテストする。