Salesforce事件更新父记录(插入触发后的Apex)

时间:2016-11-28 15:16:39

标签: salesforce

下面有一个基本触发器,可以在保存新事件后更新字段“上次会议日期”。该代码在我的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;   

}

2 个答案:

答案 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%的整体代码覆盖率。