ホソカワです。
on 00.9.14 8:00 PM, firo at firo@....jp wrote:
> 矢崎です。続きです。
>
> (太郎さん)
> 今コーヒー飲みながら次郎君から聞いたんだけれど、
> Configファイルにある頭が「X-」で始まるものは、RFC
> で決まっていないものということで、まあ、設定者が
> 好きに決めれるみたい。だから、これは自由設定OKと
> いうことで、それ専用のアクセサを作らないで、Config
> に書いてある順番で取り出せるようにしよう(あくまでも
> 頭が「X-」で始まるものだけ)。
すみません。どうして順番に取りだせるようにするのでしょうか?フィールドごとに
get できた方が使いやすいと思いますが…
> でも、MLの名前だけは、
> これは仮の宛先に使われるんだよね。きっと。だから
> こいつは特別扱いする必要あり。ということで、getName
> はそのままっと。
>
> えーとtestConstructor1と3を書きなおせばいいかな?
> あ、それと、Configファイルの中身もテストメソッド自身に
> 書かせちゃおう。testConstructor1と3に必要だから、
> こんな感じ?
>
> ・・・・
> /*
> * @(#)ConfigTest.java
> */
> package XP.jp.co.esm.wiki.extremedomo;
>
> import junit.framework.*;
> import java.io.*;
> import java.util.*;
>
> public class ConfigTest extends TestCase {
>
> public ConfigTest(String name) {
> super(name);
> }
>
> public static void main(String[] args) {
> junit.textui.TestRunner.run(ConfigTest.class);
> }
>
> public void testConstructor1(){
> FileOutputStream fo;
> try{
> fo = new FileOutputStream("config");
> }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("Y-ML-Name: extremeprogramming-false");
> pw.println("X-Mail-Count: 00796");
> pw.println("Y-Mail-Count: 00888");
> pw.println("X-MLServer: fml [fml 2.1_GAMMA#185](distribute only
> mode)");
> pw.println("Y-MLServer: fml [fml 2.1_GAMMA#185](not distribute
> only mode)");
> pw.println("X-ML-Info: If you have a question, contact with me");
> pw.println("Y-ML-Info: If you have a question, do not contact with
> me");
> pw.close();
> try{
> fo.close();
> }catch(IOException e){
> throw new RuntimeException("error on closing config file");
> }
>
> Config aConfig = new Config("config");
> assertEquals("test1", "extremeprogramming-jp", aConfig.getName());
>
> Iterator iterator = aConfig.getXInfo();
> assertEquals("test2", "X-ML-Name: extremeprogramming-jp",
> iterator.next( ));
> assertEquals("test3", "X-Mail-Count: 00796", iterator.next( ));
> assertEquals("test4", "X-MLServer: fml [fml
> 2.1_GAMMA#185](distribute only mode)", iterator.next());
> assertEquals("test5", "X-ML-Info: If you have a question, contact
> with me", iterator.next());
> assert("test6", ! iterator.hasNext());
>
> }
>
testConstructor1 は、ちょっと長いと思いましたので refactor させていただきま
した。
public void testCorrectConfig() {
String correctFilename = "CorrectConfig";
createCorrectConfigFile(correctFileName);
Config aConfig = new Config(correctFileName);
assertEquals("test1", "extremeprogramming-jp", aConfig.getName());
// ...
}
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");
// ...
}
何をテストしているのが伝わってこなかってので、名前を testCorrectConfig に変
えました。最初に正しいコンフィグファイルを作成します。それから、テストをする
ようにしました。
また、
private void createCorrectConfigFile(filename) {
Config aConfig = new Config();
aConfig.setName("extremeprogramming-jp");
// ...
aConfig.save(filename);
}
の様に Config にファイルに吐き出す機能を追加すればもっときれいですね。
--
Kaoru Hosokawa
khosokawa@....com