ホソカワです。
on 2000/04/25 11:55 PM, Kaoru Hosokawa at khosokawa@....com wrote:
> ホソカワです。ちょっと教えてください。
>
> on 2000/04/21 6:19 PM, firo at firo@....jp wrote:
>
>> 矢崎です。
…
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> 7.ConcreteTestCase完成。
>>
>> import junit.framework.*;
>>
>> public class ConcreteTestCase extends TestCase{
>>
>> TestTarget aTestTarget;
>>
>> public ConcreteTestCase(String name){
>> super(name);
>> }
>>
>> public void setUp(){
>> aTestTarget = new TestTarget();
>> }
>>
>> public void tearDown(){
>> aTestTarget = null;
>> }
>>
>> public void testXXX(){
>>
>> int wkInt;
>> String unitName;
>>
>> aTestTarget.setNumber(0);
>> aTestTarget.setNumber(1000);
>> wkInt = aTestTarget.getNumber();
>> assertEquals(wkInt,1000);
>>
>> aTestTarget.setName("TARO");
>> assertEquals("TARO",aTestTarget.getName());
>>
>> }
>>
>> public void testYYY(){
>>
>> int wkInt;
>> String unitName;
>>
>> aTestTarget.setNumber(0);
>> aTestTarget.setNumber(1000);
>> assert(0 != aTestTarget.getNumber());
>>
>> aTestTarget.setName("TARO");
>> assert(! "HANAKO".equals(aTestTarget.getName()));
>>
>> }
>>
>> public void testZZZ(){
>> assertNotNull(aTestTarget.getName());
>> }
>>
>> }
>>
>>
>
> それで、実際にtestXXX(), testYYY(), testZZZ()をコールするのはだれなのでしょ
> うか?どのようなメカニズムで呼ばれるのでしょうか?
>
石井さんのウェブページ
(http://member.nifty.ne.jp/masarl/article/testing-framework.htmlKent)「
Beck Testing Framework 入門」、読ませていただきました。参考になりました。あ
りがとうございます。
そこからの抜粋ですが、
抜粋ここから、
『(さらに) JUnit では Reflection の機能を使い、テストクラスの public メソッ
ドでかつ名前が test で始まるメソッドをすべてテストメソッドとし、各テストメソッ
ド用に対応するテストクラスのインスタンスを集めて TestSuite クラスに登録する
という便利な機能があります。』
抜粋ここまで。
矢崎さんのまだ説明されていない TestSuite の部分に以下のようなコードが入って
いるのではないでしょうか?
TestSuite suite = new TestSuite(ConcreteTestCase.class);
suite.run();
ConcreteTestCase.class から testXXX()、testYYY()、testZZZ() を見つけだし、登
録を行い、run() の実行時、それぞれの test メソッドが呼ばれるのですね。
Reflection を使ってどのように test メソッドを見つけるのはソースコードを読む
事になりますね。
--
Kaoru Hosokawa
khosokawa@....com