Triggers 触发器触发两次,但第一次运行为空?

Triggers 触发器触发两次,但第一次运行为空?,triggers,salesforce,apex,Triggers,Salesforce,Apex,以下触发器触发两次: trigger AccountTrigger on Account ( before insert, after insert, before update, after update, before delete, after delete) { AccountTriggerHandler handle = new AccountTriggerHandler(trigger.new, trigger.oldMap); System.debug('Acco

以下触发器触发两次:

trigger AccountTrigger on Account ( before insert, after insert, before update, after update, before delete, after delete) {

    AccountTriggerHandler handle = new AccountTriggerHandler(trigger.new, trigger.oldMap);
    System.debug('AccountTrigger created a handler instance: ' + handle);
    // Currently the Trigger is firing twice with no obvious reason.
    
  if (Trigger.isBefore) {
    if (Trigger.isInsert) {
      handle.beforeInsert();
    } 
    if (Trigger.isUpdate) {
      // Call handler here!
    }
    if (Trigger.isDelete) {
      // Call handler here!
    }
  }

  if (Trigger.isAfter) {
    if (Trigger.isInsert) {
      // Call handler here!
    } 
    if (Trigger.isUpdate) {
      // Call handler here!
    }
    if (Trigger.isDelete) {
      // Call handler here!
    }
  }
}
调试结果显示两个处理程序实例。奇怪的是:第一个似乎是空的?这怎么可能?

编辑1: 测试代码:

@isTest
public class AccountTestTest {
@isTest
    public static void testAccountInsert() {
        // Insert an Account
        Account a = new Account(name='TestCustomer');
        insert a;
        
        Account queryAccount = [SELECT Account.id, Account.name FROM Account WHERE Id = :a.Id];
        System.debug('TEST RESULT: ' + queryAccount);
        System.debug('AccountTestTest completed.');
        // Actually test something...
    }
    
}

我知道它缺少断言,但为了简单起见,我刚刚尝试了这个断言。

这是因为“插入前”。在那个阶段,还没有生成ID。如果在插入best(复杂验证?字段预填充?)之前没有任何适合的逻辑,请删除该事件?

测试代码?对!需要检查触发前部分中的id以外的内容。非常感谢。