Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
こんにちは!
うっちーです。
今までのたてに流すテストと違って、XPのユニットテストは横合いからのテストです。
今までのテストは、岩壁を上から下に、たてにドリルを打ち込むようなものでありました。 その岩壁の構造に目をつぶって、上から表面の点を全て打ち尽くすことを私たちは試みていました。
XPのユニットテストは、岩壁の横に吸い付くたこのようであります。 岩壁の内部構造に合わせて、一つ一つのブロックを横から2本足で がっちり捉えている感じです。 片足は、テストを送って、もう片足は、結果を受け取り、 本体がその確認をするようなものです。
XPのユニットテストは、 テストコードから、ソースコードの関数を呼び出して、様々な引数を投げつけて、 動作を確認します。そうした動作確認のできた関数を積み上げていくのです。
テストコードは至ってシンプルです。
- テスト関数名( "テストの趣旨", 期待値, 関数名( 引数 )
返ってきた値は、期待しているものと等しいかどうかを確認するだけです。
テストコードはソースコードとは別にあるので、ソースを汚すことはありません。 テストの仕組みは用意されているので、 テストコードを書けば、いつでも、どこでも、その場で気軽にすぐに確認できます。
既存のコード、標準のライブラリさえもテストすることができます。 絵空事のヘルプファイルを読むではなく、動かして確認できるのです。
ユニットテストを始めた当時は、私は、テストできることが楽しくてしようが ありませんでした。テストファーストとかよりも。 テストを走らせれば、 疑問はすぐに解決できますし、書いたコードが間違っていないかすぐに確認できます。 スペルミスなどは全くびくびくしなくなりました。 テストすれば簡単にわかるので、つまらないミスに精力をさくことはなくなり、 より中心的な機能に注力することができるようになりました。
小さい部分に絞ってのテストなので、考えやすくなりました。 テストケースの漏れも少なくなりました。 見る見るうちに積み上がっていくコード、しかも完全に動作できます。 仕事は達成感に満ち溢れ、ゴールに向かって進んでいるという実感は常にありました。
そして、テストすることで、悟らされたことが一杯ありました。 それはまたの機会に書かせていただきます。
There is no comment.