Index: [Article Count Order] [Thread]

Date:  Sat, 23 Sep 2000 11:31:58 +0900
From:  omura@....jp
Subject:  [XP-jp:00913] Re: VXP タスク3 --Config
To:  extremeprogramming-jp@....jp (extremeprogramming-jp ML)
Message-Id:  <20000923113023omura@....jp>
In-Reply-To:  Your message of "Sat, 16 Sep 2000 11:55:38 +0900"             <39C2E55B.4DDC942B@....jp>
References:  <39C2E55B.4DDC942B@....jp>
Posted:  Sat, 23 Sep 2000 11:30:23 +0900
X-Mail-Count: 00913

大村です。

" [XP-jp:00898] テストのためだけのメソッド"からのスレッドの議論が
面白くて、元をたどってこのあたりにやってまいりました。


firo@....jp wrote:
"[XP-jp:00889] Re: VXP タスク3 --Config"

>>     private void createCorrectConfigFile(String filename) {
>>         FileOutputStream fo;
>>         try {
>>             fo = new FileOutputStream(filename);
>>         } catch (FileNotFoundException e) {
>>             throw new RuntimeException("unable to open config file");
>>         }
>>         PrintWriter pw = new PrintWriter(fo);
>>         pw.println("X-ML-Name: extremeprogramming-jp");
>>         pw.println("X-Mail-Count: 00796");
>>         // ...
>>     }
・・・
>>     private void createCorrectConfigFile(filename) {
>>         Config aConfig = new Config();
>>         aConfig.setName("extremeprogramming-jp");
>>         // ...
>>         aConfig.save(filename);
>>     }
>>
>> の様に Config にファイルに吐き出す機能を追加すればもっときれいですね。
>
>これについては、現時点でConfigにsetNameとかsaveの機能が
>必要だとまではまだ考えられていません。カウンタについては、
>その必要性を示唆していますが、これについては別のタスクで
>やりたいと考えいます。名前については、示唆すらもされていま
>せん。ですから、YAGNIの原則からいって、seNameやsaveは、
>今のところ作るべきでないと判断しています。

save()を作りこむか作らないかという議論の他に、次のような論点もあるかなと
思いました。

つまり、この例の場合、save()は、configファイルのテストという本来の対象には含まれない
methodですが、それをここで使用してしまうと、createCorrectConfigFile()が、無関係な
methodに依存してしまう、という点です。

つまり、「テストではそのテストに関係のないmethodは使わない」という
ルールがあってもいいのではないでしょうか。(オッカムの剃刀みたいなもんですね)