http://www-6.ibm.com/jp/developerworks/java/020125/j_j-diag0911.html#8

の記事で、

>そして、この疑問に代えて、「どうしたら、テストできる方法でこのコードを書け
>るか?」と自分自身にしばしば、テストを容易にするという目的だけに寄与する
>機能を多く追加することになります。

というのがあります。

個人的には、テストのみにしか使用できない機能を付加するのは非常に抵抗が
あるんですが、テストのためのテストって気がしませんか?

テストをし易い構造にするってのが正道だとは思うんですが。