我需要为控制器类中的getter,setter方法编写测试覆盖率代码
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 :(得分:1)
为了通过测试覆盖此代码,您必须模拟至少2个状态:
reg[0].Status__c == 'Revire'
reg[0].Status__c != 'Revire'
另外,我建议考虑reg
没有记录的情况,因为这可能会导致NPE。
所以在你的测试中你需要类似的东西
@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);
}