テストはどこまでやるべきなのか?
極端なことを言えば、テストをしなくても動くものは作れてしまう。
テストの長所
テストにより、実運用前に不具合を発見できる。
変更時にうっかりどこかを壊していないかを確認できる。(現新比較)
テストの短所
テストを作るのに工数がかかる。
無意味なテストを作りがち。(簡単に作れるが、不具合をほとんど見つけない)
全組み合わせを作ろうとすると組み合わせ爆発を起こす。
エラーのテストはとても作りにくい。(そもそも、下位層のエラーがどう出るのかを正確に把握できない。)
モック、ドライバができるのは理想だが、複雑度が高いものはなかなか作れない。
おおまかな指針
不具合を見つけ出せないテストには意味がない。
getter,setterのテストはほぼ無意味。
少なくとも正常系のテストは存在していなければならない。
モック、ドライバは現物が手に入らないようなケースでは間違いなく作る価値がある。
テストを作りすぎると変更が大変になる。必要最小限を目指す。