テストしやすいコードを書く

ユニットテストを書くようになると,テストが書きやすいクラスと書きにくいクラスがあることに気づく。で,ここで迷う。「テストしやすいようにクラスを書き換えることは本末転倒か?」
Rubyスクリプトを書いていると,最初は深く考えずに書きなぐることが多い(というか,そういう用途によくRubyを使う)ので,メソッド中でファイル名決め打ちでデータを取得していることなんかしょっちゅうだったりする。外部依存性が高まるとテストが書きにくくなるので,こういうところを修正して「テストにやさしいクラス」にするんだけど,これって「テストのためにクラスを修正する」ってことだから,なんかおかしいカモと思った。
でも「テスト」と思うから違和感があるんで,ユニットテストって要するに「外からクラスを使う」ってことだよね。つまり「テストしやすいクラス」とは「使いやすいクラス」ということになる。だから,テストのためにクラスを変えていくのは悪いことではない。という結論に達しました。