2012-08-06 175 views
-1

我是新來的JUnit測試用例的世界,我只是想知道讓說,如果我開發了一個程序關於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測試案例,這和如何他們將被寫在單獨的課堂上。

回答

6

原樣,這個程序是不可測試使用JUnit - 這是太小了,這一切都在一個方法。爲了使其成爲可測試的,你需要將它分解成只做一件事的部分。

其中一個部分可能是populateMap(),這是一種創建HashMap並添加值的方法。然後,您可以添加一個或兩個調用該方法的測試,並測試地圖的大小和內容。

打印輸出也很難(如果不是不可能)來測試。解決這個問題的一種方法是將打印輸出的代碼放入接受PrintWriter作爲參數的方法中。在真正的程序中,調用它並將它傳遞給System.out。在測試中,你可以連接到一個StringWriter一個PrintWriter調用它,然後檢查StringWriter的內容。

一般情況下,你不考程序使用JUnit;你測試單位。 A 單元是一類或一小組緊密耦合的類,它爲程序的其餘部分提供某種明確定義的服務。例如,像StringBuilder這樣的類是一個相當大且複雜的單元,希望您可以想象數十或數百個可能爲其編寫的測試。