Michael Feathers氏の最新の投稿をめぐり、ブログのコミュニティ上で活発な議論が行われた(source)。Feathers氏は、オブジェクト指向プログラミング言語に組み込まれた機能を使うと、テストが容易に行うことができ、コードの復元性を簡単に高めることができる(source)と主張した 。 Feathers氏は一つのサンプルを提示した。このクラスXはbadMethodという名前のメソッドを持っている。このメソッドはテストをしにくくするような何か、例えばデータベースを作成/更新したり、低レベルのハードウェアを操作したりする。 public class X { public void method() { ... badMethod(); ... } ... } クラスごとのテストや、(関連する機能ごとの)クラス群ごとに独立してテストができるような設計が理想である。このケースは理想