Apex Replay Debugger を設定する
このステップでは、Apex Replay Debugger でテストとデバッグを行うために、Apex コードを使用して Salesforce DX プロジェクトを作成します。
Salesforce DX プロジェクトを作成する
- Visual Studio Code で [View (表示)] メニューをクリックし、[Command Palette... (コマンドパレット...)] を選択します。または、Ctrl + Shift + P (Windows または Linux) または Cmd + Shift + P (macOS) のキーボードショートカットを使用して、コマンドパレットを開くこともできます。
- 検索ボックスに
sfdx create project
(sfdx プロジェクトを作成) と入力し、[SFDX: Create Project (SFDX: プロジェクトを作成)] を選択します。
-
[Standard project template (default) (標準プロジェクトテンプレート (デフォルト))] を選択します。
- プロジェクト名として
debugger-project
と入力します。
- プロジェクトを作成するフォルダーを選択します。数秒後、Visual Studio Code が自動的に再読み込みされ、新しいプロジェクトフォルダーが開きます。
- [Explorer (エクスプローラー)] サイドバーで、
force-app/main/default/classes
フォルダーを展開します。フォルダーは空です。次のセクションでこれを変更します。
Apex クラスを作成する
- [Explorer (エクスプローラー)] サイドバーで、
classes
フォルダーを右クリックし、[SFDX: Create Apex Class (SFDX: Apex クラスを作成)] を選択します。[New File (新規ファイル)] コマンドは選択しないでください。このコマンドでは必要なメタデータの .xml ファイルが作成されません。
- 名前に
AccountService
と入力し、デフォルトディレクトリを受け入れます。
-
AccountService.cls の内容を次のコードに置き換えます。このファイル内のバグ 🐞 は意図的なものですので、まだ修正しないでください。😉
public with sharing class AccountService { public Account createAccount( String accountName, String accountNumber, String tickerSymbol ) { Account newAcct = new Account( Name = accountName, AccountNumber = accountNumber, TickerSymbol = accountNumber ); return newAcct; } }
- ファイルを保存します。
コードのポイント
-
AccountService
クラスには 1 つのメソッドcreateAccount
があります。
- このメソッドは、メソッドパラメーターに割り当てられた取引先名、取引先番号、株式コード項目を使用して取引先 sObject 変数を作成し、返します。
Apex テストを作成する
- [Explorer (エクスプローラー)] サイドバーで、
classes
フォルダーを右クリックし、[SFDX: Create Apex Class (SFDX: Apex クラスを作成)] を選択します。
- 名前として
AccountServiceTest
と入力します。
-
AccountServiceTest.cls の内容を次のコードに置き換えます。
@IsTest private class AccountServiceTest { @IsTest static void should_create_account() { String acctName = 'Salesforce'; String acctNumber = 'SFDC'; String tickerSymbol = 'CRM'; Test.startTest(); AccountService service = new AccountService(); Account newAcct = service.createAccount( acctName, acctNumber, tickerSymbol ); insert newAcct; Test.stopTest(); List<Account> accts = [ SELECT Id, Name, AccountNumber, TickerSymbol FROM Account WHERE Id = :newAcct.Id ]; Assert.areEqual( 1, accts.size(), 'should have found new account' ); Assert.areEqual( acctName, accts[0].Name, 'incorrect name' ); Assert.areEqual( acctNumber, accts[0].AccountNumber, 'incorrect account number' ); Assert.areEqual( tickerSymbol, accts[0].TickerSymbol, 'incorrect ticker symbol' ); } }
- ファイルを保存します。
コードのポイント
-
AccountService
クラスには 1 つのテストメソッドshould_create_account
があります。
- このテストメソッドでは、
AccountService.createAccount
メソッドを使用して、期待される項目値として名前に「Salesforce」、取引先番号に「SFDC」、株式コードに「CRM」を指定して取引先 sObject 変数を作成します。
- このテストメソッドは挿入された取引先レコードを照会し、期待される項目値を確認します。
上記の Apex クラスを作成すると、classes
フォルダーには 4 つのファイルが含まれます。AccountService.cls、AccountServiceTest.cls、およびそのメタデータファイルです。これらのファイルがない場合、[New File (新規ファイル)] コマンドではなく [SFDX: Create Apex Class (SFDX: Apex クラスを作成)] コマンドを使用してファイルを作成したことを確認してください。
組織を承認する
次に、Salesforce CLI でハンズオン組織を承認して、CLI と Visual Studio Code 向け Salesforce 拡張機能を使用して組織を操作できるようにします。
- Visual Studio Code で [View (表示)] メニューをクリックし、[Command Palette... (コマンドパレット...)] を選択します。または、Ctrl + Shift + P (Windows または Linux) または Cmd + Shift + P (macOS) のキーボードショートカットを使用して、コマンドパレットを開くこともできます。
- 検索ボックスに
sfdx authorize org
(sfdx 組織を承認) と入力し、[SFDX: Authorize an Org (SFDX: 組織を承認)] を選択します。
- ログイン URL オプションを選択します。Trailhead Playground 組織の場合、[Project Default (プロジェクトのデフォルト)] または [Production (本番)] を選択できます。
- 組織の別名として
debuggerOrg
と入力します。
- ブラウザーで Salesforce ログインページが開きます。Trailhead Playground のログイン情報を入力します。
- アクセスを許可するよう要求されたら、[Allow (許可)] をクリックします。
- Visual Studio Code に戻り、Trailhead Playground 組織が承認されていることを確認します。
Successfully authorized <username> with org ID <orgid>
(組織 ID <orgid> で <username> の承認に成功しました) のような出力が表示されるはずです。
これで完了です。[Verify Step (ステップを確認)] をクリックして、ハンズオン組織で Salesforce CLI が承認されていることを確認し、次のステップに進んで、Apex Replay Debugger でコードをデバッグしましょう。
リソース
- 外部サイト: Salesforce Extension Pack
- Salesforce DX 開発者ガイド: Salesforce DX プロジェクトの設定
- 外部サイト: Debugging in Visual Studio Code (Visual Studio Code でのデバッグ)