2016-02-20 18 views
0

我需要編寫一個getter測試覆蓋碼,setter方法測試類的控制器類如何寫上所使用的VF頁作爲表達的語言代碼

public Boolean showNtc { 
    get { 
     if (reg[0].Status__c == 'Review') { 
      return true; 
     } else { 
      return false; 
     } 
    } 
    private set; 
} 

在VisualForce頁面代碼像下面一樣

<apex:outputPanel id="step2" rendered="{!showNtc}" 

一切工作正常,期望我無法通過測試類執行上述代碼。我嘗試了幾種方法,但我失敗了。

+0

一種優化;',它會有助於減少代碼行數。 – jagmohan

+0

我不能通過測試類去公開的showNtc方法。 – Chathura

回答

1

爲了掩蓋這個代碼測試,你必須效仿至少2種狀態:

  • reg[0].Status__c == 'Revire'
  • reg[0].Status__c != 'Revire'

此外,我建議考慮當reg沒有記錄因爲這可能會導致NPE。

所以在測試中,你需要類似的東西,你可以用簡單改變的if-else來`返回REG [0] == .Status__c「查看」

@isTest 
static void test1() { 
    ObjectWhichIsOnRegList__c obj = new ObjectWhichIsOnRegList__c(); 
    obj.Status__c = 'Review'; 
    insert obj; 

    ControllerClassName ctrl = new ControllerClassName(); 
    System.assert(ctrl.showNtc); 
} 


@isTest 
static void test1() { 
    ObjectWhichIsOnRegList__c obj = new ObjectWhichIsOnRegList__c(); 
    obj.Status__c = 'Any other Status, but not Review'; 
    insert obj; 

    ControllerClassName ctrl = new ControllerClassName(); 
    System.assert(!ctrl.showNtc); 
} 
相關問題