上手です。
On Tue, 13 Jun 2000 10:34:14 +0900
Yuji Yamano <u90156@....jp> wrote:
> 1は、”プログラム実行がエラーで止まること”です。
> 2は、止まらないが、誤った処理をする場合です。
> >
> > ということで、1 のようです。
>
> うーん、ちょっと納得できません。
私も半信反疑です。(笑い)
> 上手さんの解釈だと、「プログラム実行がエラーで止まる可能性があるメソッド
> についてのみ、単体テスト用のコードを書けばよい」という事になりませんか?
この疑問は私の疑問そのものであるのですが・・・・
現在のお奨め、としてテスト方針が P268(の上から13行目)に書いてあります。
・振る舞いを持つオブジェクトは全てテストする
・アクセサしか持たないレコードオブジェクトはテストしない
・私の経験でオブジェクトがbreakしないところ(when the things couldn't
possibly break) がわかる
この後を見ていると、以下のような手法を前提にしているように感じます。
1 処理については論理的にエラーが出る筈がないような構造にする
・エラーが出ることが無いループ構造にするとか
2 オブジェクトの出口で返り値に厳密なチェックをかける
・インスペクタ、デバッガで調べたり
3 ペアプログラミングで上記を徹底する
著者の頭の中は、常にSmalltalk + VisualWorks(統合開発環境)が前提になって
いると思うので、このあたりに我々のわからない言語的な特性・ノウハウ(バグ
が出ない組み方)とか開発手法があるのかもしれません。
Smalltalk はまだ勉強を始めたばかりなので、この辺りはよくわかりません。
ということで、結論がでませんので、”保留”に戻しましょう。
(では)
>
> Smalltalk のコードを書いた経験がないので、XP Installed でいわれている
> break がどういうものなのか感覚的にはよくわかりません。(論理的にはわかりますが)
> しかし、自分が C++ でやるとすると、複雑で不具合が発生する可能性がある
> メソッドについては単体テスト用のコードを書くでしょう。
>
> EC 本では Smalltalk 固有の話は抑制されているので、break の解釈が XP Installed
> と異ってもよいのではないかと思います。
>
> どうでしょうか?
>
> -- やまの
>