hogeとはワイルドカードのようなものです。日々起こった、さまざまなこと −すなわちワイルドカード− を取り上げて日記を書く、という意味で名付けたのかというとそうでもありません。適当に決めたらこんな理由が浮かんできました。
07/19/2007 あー [長年日記]
tDiary 1729日目
■ [戯言] あー
可搬性に優れた API のテストは簡単に書ける (とはいえパターンは多いのでとてもだるい) けれど,実際には API を作ることが目的なわけではないケースが殆どで,実際には用意した API を使って specific な要求を満たすことが最重要なわけ.
可搬性に優れた API を使っても,specific な要求を満たすために書いたコードそのものは可搬性をある程度犠牲にする.
可搬性を犠牲にしたコードというのは,往々にしてテストを書きにくい. よく「テストを書きにくいコードは設計がクソ」と言われるけれども,specific な要求を満たすためのコードとはそういうもののような気がする.
そしたら,specific な要求を満たすためのコードのテストはどう書けば良いのか? 例えば「192.168.0.1 の負荷状況を取得」とか「http://hoge/ を表示」とか.
最初に戻ると,重要なのは specific な要求を満たすことなので,念入りにテストしておかなければならない場所というのは specific な要求を満たすためのコードということになる.
もちろん,この時点ではもう単体テストの範疇を越えている場合も多い. けど,コードを書く目的が API を作ることじゃない場合,単体テストなんてあくまで通過点でしかないはずだろ.
単体テストも結合テストも,結局のところはバグを出さないためのツール,あるいは手順でしかなくて,使い所によってはとても便利に使えるのは分かるんだけれど,これさえやっとけば安心!とか,それが全てのように語られてるのを見るとうんざりする.