我们如何在 Salesforce 的 IF 语句中覆盖多个条件的代码覆盖率
How we can cover the code coverage for multiple conditions in IF statement in Salesforce
我正在尝试为下面的 class 方法编写一个测试 class,但我不确定如何在 IF 语句中为多个条件编写测试。
下面是 class 方法定义:
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,但它没有帮助我。
任何帮助或建议都会很有帮助。
您可以从下面的代码开始,它不会覆盖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);
}
}
我正在尝试为下面的 class 方法编写一个测试 class,但我不确定如何在 IF 语句中为多个条件编写测试。
下面是 class 方法定义:
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,但它没有帮助我。
任何帮助或建议都会很有帮助。
您可以从下面的代码开始,它不会覆盖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);
}
}