テストファーストとかの話を見ても、どうも馴染めない気がしまくる俺である。
が、関数作る時や手直しの時に、簡単な動作テストのコードを書いて様子を見ることは死ぬほど頻繁にある。同じ確認を繰り返すことも多い。なので、それを真面目な枠組みで書き残せば単体テストと言われる物になるのだろうし、何度も繰り返す時は楽だよなあ、とは思ってた。
でも、思考の流れがどうも、まずコード書いて、不安な時とかバグの疑いがある時にはちょいと動作テスト、となっているんで、真面目にテスト関係を調べたことは無かった。
が、Pythonのdoctestの仕様を見たらアホのように楽だった。
つーか日本でももっと流行っていいんじゃないのかPythonは。2.xのunicodeの仕様にはうんざりだが。ああ、それか。
手作業で動作テストする時って、対話シェルで適当に呼び出し例を書いて、戻り値を見て確認する訳だが、その一連の過程のログ画面をそのままソース中に使い方サンプルのようにコメントで貼ればdoctest対応完了。もちろん対話シェル開かなくても、対話シェルっぽいログをでっち上げればOK。
そしてdoctestを走らすと、ソース中のコメントを読み取って、サンプル通りに動くか確認してくれる。こういうのなら愛せるかもしれない。開発中の思考の流れは今まで通りでも平気で、手間が減るだけなのがいい。
ただし、2.5だとunicode食わせると死ぬので非常にアレなのであった。結局、unicode入れないと無理なテストは手作業のまま。くそう。
unicodeの扱いは、Python3.0ではPerlと同程度にはすっきりしたっぽいけど、当分は2.5使わなきゃならん様子なので困るなあ。
(Visited 2 times, 1 visits today)