Как написать тестовый класс для кодов, который используется страницами 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}"

Все работает нормально, ожидаю, что я не могу выполнить приведенный выше код тестовым классом. Я пробовал несколько способов, но мне не удалось.

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);
}
Другие вопросы по тегам