2016-02-20 3 views
0

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

One оптимизации, которые можно использовать просто изменить, если-то еще, чтобы 'возвратного рег [0]«Обзор».Status__c ==;', он будет помогают уменьшить количество строк кода. – jagmohan

+0

Я не могу пойти на этот общедоступный метод Boolean showNtc с помощью тестового класса. – Chathura

ответ

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); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^