Как мы можем покрыть покрытие кода для нескольких условий в выражении IF в Salesforce - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь написать тестовый класс для метода ниже класса, но я не уверен, как мы можем написать тесты для нескольких условий в операторе IF.

Ниже приведено определение метода класса:

public class ControllerHelper
{
    public static boolean validate (Case obj)
    {
        if((obj.field1 = 'Yes' || obj.field2 = 'Yes') && checkNullValue(obj.field3))
        ||
        ((obj.field4 = 'Yes' || obj.field5 = 'Yes') && checkNullValue(obj.field6))
       )
       return true;
       else
        {
              return false;
        }
    }

     public static boolean checkNullValue(String value)
            {
                if(value==null || value.trim().length()==0)
                {
                    return true;
                }    
                return false;
            }
}

Я пытался использовать Assert & AssertEquals, но это не помогло мне.

Любая помощь или предложение было бы очень полезно.

1 Ответ

0 голосов
/ 24 октября 2018

Вы можете начать с приведенного ниже кода, он не распространяется на 100%.Вы должны написать пару методов тестирования, чтобы охватить все поля и логику.

@isTest
public class ControllerHelperTest 
{
    @isTest
    private static void testValidate1()
    {
        ControllerHelper ctrl = new ControllerHelper();
        Boolean isValid = false;

        Test.StartTest();

        Case case1 = new Case();
        case1.field1 = 'Yes';
        case1.field2 = 'Yes';
        case1.field3 = null;

        insert case1;

        isValid = ControllerHelper.validate(case1);

        Test.stopTest();

        System.assert(isValid, true);
    }
}
...