Apex開発と取引先チームについてです。取引先チーム(AccountTeamMember)のテストデータはApexクラス内で作成することができます。
次のような感じです。
Apexクラス
/** * 取引先チームメンバー */ public static AccountTeamMember createAccountTeamMember(Account account, User user, Boolean isInsert) { AccountTeamMember accountTeamMember = new AccountTeamMember( AccountId = account.Id ,TeamMemberRole = 'Account Manager' ,UserId = user.Id ); if (isInsert) { insert accountTeamMember; } return accountTeamMember; }
Apexテストクラス
/** * 取引先チームメンバー */ static testMethod void createAccountTeamMemberTest() { System.runAs(testAdminUser) { Account account = CommonTester.createAccount(true); // レコード無しをチェック List<AccountTeamMember> testAccountTeamMembers = [SELECT Id FROM AccountTeamMember LIMIT 10]; System.assertEquals(testAccountTeamMembers.size(), 0); Test.startTest(); // INSERTなし AccountTeamMember result = CommonTester.createAccountTeamMember(account, testAdminUser, false); System.assertEquals(String.isEmpty(result.Id), true); // INSERTあり result = CommonTester.createAccountTeamMember(account, testAdminUser, true); System.assertEquals(String.isNotEmpty(result.Id), true); Test.stopTest(); // レコードありをチェック List<AccountTeamMember> resultAccountTeamMembers = [SELECT Id FROM AccountTeamMember LIMIT 10]; System.assertEquals(resultAccountTeamMembers.size(), 1); } }
取引先チームオブジェクトはシステムオブジェクトではないので、基本的にはテストクラス内から既存組織のレコードにアクセスすることはできません。
テストクラス内でINSERTすることでテストデータとして扱うことができます。
取引先チームオブジェクトの詳細はこちらです。
さいごに組織で取引先チームを使うには事前に有効化する必要があります。