Index: [Article Count Order] [Thread]

Date:  Fri, 8 Dec 2000 19:56:26 +0900
From:  Kenji Hiranabe <hiranabe@....jp>
Subject:  [XP-jp:01304] Re: テストはテスト ?
To:  extremeprogramming-jp@....jp (extremeprogramming-jp ML)
Message-Id:  <20001208195045W.hiranabe@....jp>
In-Reply-To:  Your message of "Fri, 8 Dec 2000 09:48:35 +0900"	<000201c060b2$39d3c940$010400c8@Ra20>
References:  <000201c060b2$39d3c940$010400c8@Ra20>
Posted:  Fri, 08 Dec 2000 19:50:45 +0900
X-Mail-Count: 01304

平鍋です.

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);
     }
  }

こんなんかな,と思うのですが,何か違っている気がして来まし
た.^^;


以上