以下是我的测试类的代码。
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,则交易类型不是标准。
对此有何建议?
答案 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)