Apex测试类 - 触发不触发

时间:2015-10-19 16:11:17

标签: testing triggers apex

当帐户的状态发生变化时,我写了一个顶点触发器来更新字段(status_update_date)。

在沙盒中,如果我更改了帐户的状态,则status_update_date会成功更新。

当我运行我的测试类时,触发器不会被调用,并且我获得了status_update_date的空值。有没有为什么没有调用触发器的想法?谢谢!

下面的代码,触发器在代码底部注释掉:

    @isTest
    private class UpdateStatusTest{
public static Account A;

public static String initStatus = '';
public static String finalStatus = 'Fully Active';

static testMethod void testWithAccount() {

    A = new Account(
        Status__c = initStatus,
        Name = 'TestName'
        );

    insert A;     

    test.StartTest();
    A.Status__c = finalStatus;

    update A;
    test.StopTest();
   // System.assertEquals(finalStatus, A.Status__c);
    System.assertEquals(system.today(),A.Status_Update_Date__c);

}
}



   //  trigger UpdateStatus on Account (before update) {
   //for(Account a: trigger.new){
        //If the status has changed, update the date
   //     if (trigger.oldMap.get(a.Id).Status__c != trigger.newMap.get(a.Id).Status__c) {
    //    a.Status_Update_Date__c = system.today();
    //  }
  //}
//}

1 个答案:

答案 0 :(得分:0)

更新后,您应该通过soql从数据库中获取此记录

a=[SELECT Id, Status__c FROM Account WHERE Id=:a.Id];
System.assertEquals(finalStatus, A.Status__c);