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