Salesforce Test.getStandardPricebookIdを使用して標準価格表のIDを取得する

環境
Salesforce

概要
public static Id getStandardPricebookId()
このメソッドでは、テストで組織データを照会できるかどうかに関係なく、
組織内の標準価格表の ID を返します。
型: Id 標準価格表の ID
標準価格で価格表エントリを作成するには、標準価格表の ID が必要です。
このメソッドを使用して標準価格表 ID を取得すれば、テストで価格表エントリを作成できます。

サンプルコード

@IsTest
   private static void oppTesttWithoutAllData() {
       // 取引先の作成
       Account acc = new Account(Name = 'cft');
       insert acc;
       
       // 商談の作成
       Opportunity opp = new Opportunity(Name = 'demo', AccountId = acc.Id);
       opp.CloseDate = Date.today().addDays(10);
       opp.StageName = 'Prospecting ';
       insert opp;
       
       // 商品の作成
       Product2 pro = new Product2(Name = 'items');
       insert pro;
       
       // 価格表エントリの作成
       PriceBookEntry pbes = new PriceBookEntry();
       pbes.Pricebook2Id = Test.getStandardPricebookId();
       pbes.Product2Id  = pro.Id;
       pbes.UnitPrice  = 1000;
       insert pbes;
       
       // 商談商品の作成
       OpportunityLineItem ol = new OpportunityLineItem();
       ol.OpportunityId = opp.Id;
       ol.PricebookEntryId = pbes.Id;
       
       Test.startTest();
       OpportunityUtil.OpportunityLineItemSum(opp.Id);
       Test.stopTest();
   }

 

IT

Posted by arkgame