平鍋です.
On Fri, 8 Dec 2000 09:48:35 +0900,
"Oota" <oota@....jp> said:
>> > Meyerの表明
>>
>> > 内部から見た一貫性の保証
>>
>> > XPのUnit Test
>>
>> > 外部から見た一貫性の保証
>>
>> どちらも外部からの一貫性の保証では? そのコードが中にあるか,
>> 外にあるか,の違いだと思いました.
> Meyerの表明の場合、privateなメンバに関する制約も直接書けますよね。い
> や、Javaではリフレクションを使えば書けなくもないですが。普通のXPのUnit
> Testの場合、publicなメソッドを介した間接的なものではないかと。
なるほど.私は,実は private なメソッドをテストするのは反対
で,private なメソッドは仕様の一部ではないだろう,という立場
です.
> public void testStack() {
> Stack anStack = new Stack();
> Integer anInteger = new Integer(777);
> assert(anStack.empty()); //1
> anStack.push(anInteger);
> anStack.pop();
> assert(anStack.empty()); //2
> }
1 は,コンストラクタの事後条件,2 は pop の事後条件に対応し
ていると思っていて,逆に事前条件のテストは UnitTest に対応し
ないんだろうな,と思っています.
強いて言うと,
public void testStack() {
Stack anStack = new Stack();
Integer anInteger = new Integer(777);
try {
anStack.pop();
fail();
} catch (PreconditionException e) {
assert(true);
}
}
こんなんかな,と思うのですが,何か違っている気がして来まし
た.^^;
以上