2012-03-02 55 views
0

測試get方法我在我的控制器中的財產,我想測試:我怎麼能在我的控制器

public List<SelectOption> exampleProperty { 
    get { 
     //Do something; 
    } 
} 

我不知道如何覆蓋在我的測試類的代碼。有任何想法嗎?

回答

3

有直接的方式,剛剛從測試方法

List<SelectOption> temp = obj.method; 
0

首先,你真的想要一個名爲「方法」的屬性?看起來很混亂。無論如何,要覆蓋代碼,只需撥打電話

someObject.get(method); 

但代碼覆蓋率應該是編寫好測試的副作用 - 而不是目標。你應該考慮代碼應該做什麼,並編寫測試來檢查(即斷言)它正在工作。爲使代碼效率和可讀性智能模式 -

+0

這是非常樂觀的:)那我怎麼開始爲好,然後在每一個部署開始服用10分鐘,運行所有「適當」測試你開始改變策略,開始瞄準了必要的覆蓋面:) – mmix 2012-03-02 10:49:40

+0

哈哈..這是真的...一些我工作的顧問堅持獲得最大覆蓋範圍。關於作爲方法的名稱是一個監督..當我鍵入代碼 – Prady 2012-03-02 14:26:03

1

您可能需要直接測試性能,特別是如果你使用lazy initialization調用屬性。

下面是這個模式的列表例如:

Integer[] lotteryNumbers { 
    get { 
     if (lotteryNumbers == null) { 
      lotteryNumbers = new Integer[]{}; 
     } 
     return lotteryNumbers; 
    } 
    set; 
} 

如果你想要的圖案全覆蓋(這可能是一個好主意,當你習慣了它),你需要做的事情像下面這樣:

static testMethod void lotteryNumberFactoryText() { 
    // test the null case 
    System.assert(lotteryNumbers.size() == 0); 

    Integer[] luckyNumbers = new Integer[]{33,8}; 
    lotteryNumbers.addAll(luckyNumbers); 

    // test the not null case 
    System.assert(lotteryNumbers == luckyNumbers); 
}