0

我需要为控制器类中的 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}"

一切正常,预计我无法通过测试类执行上述代码。我尝试了几种方法,但都失败了。

4

1 回答 1

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);
}
于 2016-02-21T07:02:09.770 回答