ホソカワです。
unit test に、はまりそうです。
ちょっとしたスクリプトを今日書きはじめました。その中で delDir() という関数を
書き、軽い気持ちで(特に必要とは思わず)unit test を書いてみました。delDir()
は、Windows でいうフォルダを削除する関数です。delDir() の unit test は、二つ
書きました。フォルダを作成してそのフォルダを delDir() を使って削除するテスト
と存在しないフォルダを delDir() で削除するテストです。前者のテスト結果
はpassedです。後者は存在しないフォルダを削除しようとして、failed。実行すると
unit test は、見事合格します。
delDir() は、あるフォルダをクリアする目的で使っていましたが、ある時、元フォ
ルダがない場合があり、delDir() がエラーを返しました。私は、単純に元フォルダ
がない場合は、delDir() が無視するように変更を加えました。これで、削除するフォ
ルダがない時は、何もしないで return するようになりましたところが、unit
test を実行してみると、二つ目のテストで passed するようになってしまいました。
いままで、failed していたテストが passed しました。よく考えてみると、
delDir() の仕様を変更したので、テストの結果が変わるのは当然でした。私は、テ
ストを変更して、プログラミングを続けました。めでたし、めでたし…
今回は、バグとまでは行きませんでしたが、いままで、見過ごしていたスペック変更
が、すぐに、体感できたのが驚きでした。また、XP本でいっているコードに対する安
心感を実感できたように思います。
unit test、くせになりそう。
--
Kaoru Hosokawa
khosokawa@....com