下面有一个基本触发器,可以在保存新事件后更新字段“上次会议日期”。该代码在我的Sandbox环境中运行良好,但是它显示0%的代码覆盖率,并且不允许我推出到生产环境中。任何帮助,将不胜感激。
trigger createLastReviewDate on Event (after insert) {
//map object to store account id and task create date
Map<Id,Date> accIds = new Map<Id,Date>();
//iterate over the new triggers and get the account id and task create date
for(Event e : trigger.new){
accIds.put(e.AccountId,Date.valueOf(e.StartDateTime));
}
//get the accounts to be updated
List<Account> acctsToUpdate = [Select Id,Last_Meeting_Date__c from Account where id in:accIds.keySet()];
//update the custom date field
for(Account acc : acctsToUpdate){
acc.Last_Meeting_Date__c = accIds.get(acc.Id);
}
update acctsToUpdate;
}
答案 0 :(得分:0)
Salesforce有一个内置控件,要求所有Apex代码 - 类,触发器等 - 都包含单元测试类。为了将代码从沙箱升级到生产,您的代码库必须包含75%的代码覆盖率 - 按行覆盖率计算。
通常,开发好的测试类/方法可能需要花费更多时间来编写实际代码。这是因为您应该包括正面和负面测试,并且需要花时间来实际构建测试数据。
请查看Salesforce开发人员指南,了解有关如何开发测试类和Salesforce测试最佳实践的信息:https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_testing_best_practices.htm围绕单元测试培养良好习惯对于成为优秀的开发人员至关重要。我的一半面试问题都是基于测试 - 如果你能编写好的测试代码,你就可以编写好的代码。
答案 1 :(得分:0)
您是否编写了测试类?如果是这样,请分享。
您的触发器很简单,不应该为您创建问题。
您需要的是在要部署的Apex触发器上的1%代码覆盖率。课程必须达到75%的整体代码覆盖率。