Triggers Salesforce代码覆盖率失败:尽管沙盒中的代码覆盖率为100%,但无法在生产中部署Apex触发器
我在Sandbox中的触发器的代码覆盖率为100%,但在将包上载到生产环境时,我出现了一个错误 代码覆盖失败 您的代码覆盖率为74%。您需要至少75%的覆盖率才能完成此部署 我真的不明白为什么会出现这个错误,尽管我的代码在沙箱中被100%地覆盖了 我的代码没有任何其他测试类 我错过了什么? 谢谢 这是我的扳机Triggers Salesforce代码覆盖率失败:尽管沙盒中的代码覆盖率为100%,但无法在生产中部署Apex触发器,triggers,salesforce,code-coverage,apex,Triggers,Salesforce,Code Coverage,Apex,我在Sandbox中的触发器的代码覆盖率为100%,但在将包上载到生产环境时,我出现了一个错误 代码覆盖失败 您的代码覆盖率为74%。您需要至少75%的覆盖率才能完成此部署 我真的不明白为什么会出现这个错误,尽管我的代码在沙箱中被100%地覆盖了 我的代码没有任何其他测试类 我错过了什么? 谢谢 这是我的扳机 trigger CaseConcernAircallDateTrigger on Task (after insert) { List<Case> cLi
trigger CaseConcernAircallDateTrigger on Task (after insert) {
List<Case> cList = new List<Case>();
for(Task t: Trigger.New) {
if(t.WhatId!=Null && t.whatId.getsObjectType() == Case.sObjectType){
Case c = new Case();
c.Id = t.whatId;
c.Last_Aircall_Logged__c = t.CreatedDate;
cList.add(c);
}
}
if(cList.size() > 0) update cList;
}
没关系,我找到了解决办法。 我正在直接更新列表,这导致代码覆盖率失败 我刚换了衣服 如果(cList.size()>0)更新cList;到 如果(cList.size()>0)向上插入cList
@isTest
public class CaseConcernAircallDateTriggerTest {
@isTest static void testAircallDateUpdate() {
Contact con = new Contact (FirstName = 'First Name',LastName = 'Test');
insert con;
Case c = new Case(Status = 'New',ContactId = con.Id,Phone_Number__c = '123456789');
insert c;
Task t = new Task(Subject = 'Test', WhatId = c.Id);
insert t;
c.Id = t.WhatId;
c.Last_Aircall_Logged__c = t.CreatedDate;
update c;
}
}