[kikainekomocker:22] テストからはずれた場合への対応

Ioki Masayuki youzou5 @ hotmail.com
2006年 9月 14日 (木) 02:52:13 JST


伊尾木です。

機械猫モッカーの機能に関する話です。
ちなみにモッカーにこうして欲しいなどありましたら、ぜひとも教えてください。自
分でいうのもアレですが、まだまだ使いがってがよくないなぁと感じてます。

次期モッカーの機能追加は「モッカーの返り値を変数に代入できる」機能
(undefined_value機能と勝手に呼んでいます)ともう一つはテストケースに書かれ
ていない状況にいかに対応するか、です。
undefined_value機能は、まぁちょっとおいておくとして、テストケースからはずれ
た状況にいかに対応するかについて今興味があります。

0.9.6までのモッカーにとって世界の全てはテストケースであり、そこから外れたも
のはもう奈落の底で、どんな状況になるか分からなかったわけです。(最悪擬似クラ
スが例外なげてしまう)
つまりテストケースに書かれたとおりには実行するけども、テストケースに書かれて
いない順番にメソッドを呼んだりしたら、どうなるかはしったこっちゃなかったわけ
です。(というかほぼ間違いなく失敗する)

つまり、モッカーの主義として純粋に
「Test As a Definition」
だったんです。
しかし、それではやはり使いにくいなぁってわけで、多少テストからはずれたとして
もなんとか対応できないもんかと頭を悩ませています。

というわけでモッカーの考え方を少し変えて
「Test As a Scenario」
として、テストは擬似クラスの使用方法の代表例が記述されているのだという前提に
たってテストからはずれた場合にどのように対応できるかなぁと。
1.0アルファではほんの少しその努力の跡があります。
またCVS上ではさらに努力の跡があります。(その努力の跡を説明するには、あまり
にこの余白は狭い)

つまりモッカーが吐く擬似クラスに多少のインテリジェンスっぽいものを持たせよ
うってワケです。

このインテリジェンスの持たせ方、またテストケースからいかにそのようなインテリ
ジェンスを推論するか、に関して大きな関心があります。

今のところ、純粋にテストケースのみからの推論で、いかに非破壊メソッドを見つけ
るかが明確になれば、そこそこ使いやすいかなぁと思っています。

まぁそんなこんなな議論をここでできればいいなぁと思っています。
何か皆様のご意見などありましたら、教えてください。




kikainekomocker メーリングリストの案内