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();
}