-1

Junit テスト ケースの世界は初めてです。プログラムを開発したかどうかを知りたいだけです。

class MapDemo1
{static final Logger logger = Logger.getLogger(MapDemo1.class);
     /**
     *  
     */
    public static void main(String arg[])
     {PropertyConfigurator.configure("src/log4j.properties");
     logger.info("-->Map");
    // Map map=new TreeMap();

         Map map=new HashMap();//HashMap key random order.
      //   System.out.println("Amit".hashCode());
         map.put("Amit","Java");
         map.put("Amit","Javas");
        // map.put("mAit","J2EE");
         //map.put("Saral","J2rrrEE");
         /*map.put("ty","Spring");
         map.put("Anupam","Hibernate");
         map.put("Ravi",".Net");
         map.put("Saral","Andriod");//same key but different value 
         map.put("Nitin","PHP");
         map.put("hj","Spring1");*/
         System.out.println("There are "+map.size()+" elements in the map.");
         System.out.println("Content of Map are...");
         Set s=map.entrySet();
         Iterator itr=s.iterator();
         while(itr.hasNext())
         {
             Map.Entry m=(Map.Entry)itr.next();
             System.out.println(m.getKey()+"\t"+m.getValue()+"\t"+ m.hashCode());
          }
]
}

ここで、このためのjunitテストケースとは何か、およびそれらが別のクラスでどのように記述されるかをアドバイスしてください。

4

1 に答える 1

6

そのままでは、このプログラムは JUnit を使用してテストできません。小さすぎて、すべてが 1 つのメソッドになっています。テスト可能にするには、1 つのことだけを行うパーツに分割する必要があります。

そのような部分の 1 つはpopulateMap()、 を作成しHashMapて値を追加するメソッドです。次に、そのメソッドを呼び出してマップのサイズとコンテンツをテストする 1 つまたは 2 つのテストを追加できます。

印刷出力のテストも (不可能ではないにしても) 困難です。これに対処する 1 つの方法は、出力を出力するコードをPrintWriter、パラメーターとして a を受け入れるメソッドに入れることです。実際のプログラムでは、それを呼び出して、 に接続された何かを渡しSystem.outます。テストでは、 を にPrintWriter接続して呼び出しStringWriter、その の内容を調べることができますStringWriter

一般に、 JUnit を使用してプログラムをテストすることはありません。ユニットをテストします。ユニットは、プログラムの残りの部分にある種の明確に定義されたサービスを提供するクラスまたは密結合クラスの小さなグループのいずれかです。たとえば、 のようなクラスStringBuilderはかなり大きくて複雑なユニットであり、それに対して何十または何百ものテストを作成することを想像してみてください。

于 2012-08-06T17:11:53.203 に答える