Chapter9 - Practical Object Oriented in Ruby
Designing Cost Effective Tests
まとめ
効果的なテストを書くことの目的は、これまでやってきた設計に関する考えと同じで、コストを減らすこと。
テストはあるオブジェクトに対して、どういった文脈で、どのように扱えばいいかを最小限の形で記述するので、オブジェクトに対してのいいドキュメントとなる。
デザインの決定を遅らせるという文脈において、現状あまり良くないコードだけど修正するにはもう少し待っておいた方がいいという場合等に、インターフェースだけはしっかり定義して、そのインターフェースに対するテストをしっかり書いておくことで、いざ修正しようとした時にスムーズに行うことができる。
When the design is bad, testing is hard.
あるテストを書くことのセットアップ等が複雑で困難な場合、アプリケーション内でそのオブジェクトを使うことも難しい。
スタブやモックを使ったテストやprivate method, duck type, 継承周りのテストのやり方や注意点など結構ボミューミーに説明されている。
この辺りは何が書かれているかを把握しておいて、後で必要になった時にしっかりと読んでみようと思う。