2012-11-20 111 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

單元測試不測試代碼,它根據規範測試實現。你沒有包括你的代碼應該做什麼。並且說「以及代碼」沒有意義,因爲這已經假定它遵循規範,因此單元測試不是必需的。

相關問題