-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 进行测试——它太小了,而且都在一个方法中。为了使其可测试,您需要将其分解为只做一件事的部分。

一个这样的部分可能是populateMap()创建HashMap和添加值的方法。然后,您可以添加一两个调用该方法并测试地图大小和内容的测试。

打印输出也很难(如果不是不可能的话)测试。解决此问题的一种方法是将打印输出的代码放入接受 aPrintWriter作为参数的方法中。在实际程序中,调用它并将连接到的东西传递给它System.out。在测试中,您可以通过PrintWriter连接到 a来调用它StringWriter,然后检查 that 的内容StringWriter

通常,您不会使用 JUnit测试程序。你测试单元。一个单元要么是一个类,要么是一小组紧密耦合的类,它们为程序的其余部分提供某种定义良好的服务。例如,类 likeStringBuilder是一个相当大且复杂的单元,希望您可以想象为它编写的数十或数百个测试。

于 2012-08-06T17:11:53.203 回答