Salesforce 公式字段在 Apex 代码中始终等于 null

Salesforce Formula Field always equals null in Apex code

我有一个为资产对象定义的公式字段 "Asset MRR"。
此字段的值定义为始终等于 100:

但是当我尝试访问 Apex 中的 "Asset MRR" 字段时,由于某种原因 asset.Asset_MRR__c 等于 null

static testMethod void assetTriggerTest2() {
        Account account = new Account(Name='SFDC Account');
        insert account;

        Asset asset = new Asset(Name='asset name', AccountId = account.Id);
        insert asset;

        // System.AssertException: Assertion Failed: Expected: null, Actual: 100
        System.assertEquals(asset.Asset_MRR__c, 100); 
    }

虽然在 Salesforce 界面中 asset.Asset_MRR__c 的值是 100,但它应该是:

为什么 asset.Asset_MRR__c 在 Apex 中等于 null?为什么不是 100?

您需要重新查询记录并包含该字段。

资产资产 = [Select ID,名称,Asset_MMR__c 来自资产,其中 id =:asset.id 限制 1][0];

System.assertEquals(asset.Asset_MRR__c, 100);