2012-11-20 110 views
-3

因为我是一个初学者的JUnit请在下面的课堂写作的测试案例帮助如何为下面的类编写JUnit测试用例?

我的程序如下:

public class One 
    { 
    public void caseOne() 
    { 
     int max=0, 
     cardNo=0; 
     System.out.println("Name:"); 
        String name=br.readLine(); 
        System.out.println("Amount:"); 

        int amount=Integer.parseInt(br.readLine()); 
        int max=0; 
        for(Customer c :custList) 
        { 
         if(c.getCardNo()>max) 
         { 
          max=c.cardNo; 
         } 

        } 
        System.out.println("Your card no:"+(max+1)); 
        Customer newCust=new Customer(name,amount,max+1); 
        custList.add(newCust); 
    } 
} 
+1

第一个测试是看代码是否编译 – smk

+0

我不这样编译。@ sindu ...你可以通过更好的代码格式吗?http://meta.stackexchange.com/questions/22186/how-do -i-format-my-code-blocks – SRy

回答

1

一般来说,void返回类型的方法很难测试。

现在你的类有一个方法用3-4职责:

  1. 解析输入
  2. 创造客户
  3. 管理客户名单
  4. 日志输出
(?)

如果他们的职责对应用程序至关重要,可以考虑将上述内容转化为他们自己的类。

例如,也许你只解析器打开文件到List<Map<String, String>>List<Customer>,和你有一个CustomerRepository,他们的工作仅仅是设法Customer对象的集合。

+0

或将它们划分为可测试的方法 – Scorpio

+0

上面的代码的4个类是*略微*过度杀伤 – UmNyobe

+0

@UmNyobe以上不编译,我们必须假设有更多的地方。在介绍课程时总会有一个判断的呼声,但根据我的经验,更多的问题是由于课程太少而导致的,而不是太多。 – sghill

3

单元测试不测试代码,它根据规范测试实现。你没有包括你的代码应该做什么。并且说“以及代码”没有意义,因为这已经假定它遵循规范,因此单元测试不是必需的。

相关问题