检查salesforce测试类中的字符串值

时间:2018-02-20 09:03:01

标签: salesforce apex

以下是我的测试类的代码。

Opportunity opp = [select Deal_Type__c from opportunity where Id: = <some id>]; 
Case objCase = new Case(); 

objCase.standard_or_nonstandard__c = 'Yes';

if(objCase.standard_or_nonstandard__c = 'Yes'){ // this if is getting tested 
    opp.Deal_Type__c = 'Standard'; 
}
 else{                                          // else part is getting skipped
     opp.Deal_Type__c = 'Not Standard'; 
}

首先,如果条件正在测试而其他条件正在跳过,这就是为什么代码没有达到75%的代码覆盖率。

字段 standard_or_nonstandard__c 是具有两个值的选项列表&amp;

如果值为Yes,则交易类型应为标准,如果为No,则交易类型不是标准。

对此有何建议?

2 个答案:

答案 0 :(得分:0)

因为您将字段objCase.standard_or_nonstandard__c设置为&#39;是&#39;在条件之前。这意味着该领域无法等于“不”。当评估条件时。所以第一个&#39; if&#39;始终输入块,而其他条件永远不会。您需要在If语句之前删除该行(objCase.standard_or_nonstandard__c =&#39; Yes&#39 ;;),以便测试数据能够进入else块。

答案 1 :(得分:0)

您需要对代码进行一些更改以覆盖75%的代码覆盖率。 您应该尝试以下一种方法:

 Opportunity opp = [select Deal_Type__c from opportunity where Id: = <some id>]; 
Case objCase = new Case(); 

objCase.standard_or_nonstandard__c = 'Yes';

opp.Deal_Type__c = 'Not Standard';
if(objCase.standard_or_nonstandard__c == 'Yes'){ // this if is getting tested 
    opp.Deal_Type__c = 'Standard'; 
}

谢谢, 阿杰·杜贝迪(Ajay Dubedi)