テストクラスの追加
- Sandbox の Professional Edition、Enterprise Edition、Performance Edition、または Unlimited Edition 組織の Salesforce アカウント、または開発者組織のアカウント。
- HelloWorldTrigger Apex トリガ
このステップでは、1 つのテストメソッドを持つテストクラスを追加します。また、テストを実行して、コードカバー率を検証します。テストメソッドはトリガとクラスのコードを実行して検証します。また、トリガとクラスのコードカバー率が 100% に達するようにします。
- [設定] から、[クイック検索] ボックスに「Apex クラス」と入力し、[Apex クラス] を選択して、[新規] をクリックします。
-
クラスエディタで、このテストクラスの定義を追加し、[保存] をクリックします。
このクラスは、@isTest アノテーションを使用して定義されています。こうして定義されたクラスには、テストメソッドのみが含まれます。テスト用に個別のクラスを作成することの利点の 1 つは、isTest で定義されたクラスは、Apex コードに対して組織で設定された 3 MB の制限の対象としてカウントされないことです。@isTest アノテーションを個別のメソッドに追加することもできます。詳細は、「IsTest アノテーション」および「実行ガバナと制限」を参照してください。
メソッド validateHelloWorld は testMethod として定義されます。このアノテーションは、データベースに変更が行われても、実行の完了時にロールバックされることを示します。テストメソッドで作成したテストデータは削除する必要がありません。
まず、テストメソッドはブックを作成し、データベースに一時的に挿入します。System.debug ステートメントによって、デバッグログに価格の値が書き込まれます。
ブックが挿入されると、コードは、挿入時にブックに割り当てられた ID を使用して新たに挿入されたブックを取得します。その後、System.debug ステートメントによって、トリガが変更しれた新しい価格が記録されます。
MyHelloWorld クラスが実行されると、Price__c 項目が更新され、値が 10% 減少します。次のテストは、メソッド applyDiscount が実行され、予想どおりの結果が得られたことを検証します。
- このテストを実行し、コードカバー率情報を確認するために、開発者コンソールに切り替えます。
- 開発者コンソールで、 をクリックします。
- テストクラスを選択するには、[HelloWorldTestClass] をクリックします。
- HelloWorldTestClass クラスのすべてのメソッドをテスト実行に追加するには、[Add Selected (選択された項目を追加)] をクリックします。
-
[Run (実行)] をクリックします。
[Tests (テスト)] タブにテスト結果が表示されます。必要に応じて、[Tests (テスト)] タブのテストクラスを展開して、実行されたメソッドを確認できます。この場合、クラスには 1 つのテストメソッドのみが含まれます。
- [Overall Code Coverage (全体のコードカバー率)] ペインに、このテストクラスのコードカバー率が表示されます。このテストでカバーされたトリガ内のコードの行の割合 (100%) を表示するには、[HelloWorldTrigger] のコードカバー率行をダブルクリックします。トリガは MyHelloWorld クラスからメソッドをコールするため、このクラスにもカバー率 (100%) があります。クラスのカバー率を表示するには、[MyHelloWorld] をダブルクリックします。
- [Logs (ログ)] タブのログリストで最新のログ行をダブルクリックして、ログファイルを開きます。実行ログが表示されます。このログには、トリガイベント、applyDiscount メソッドへのコール、およびトリガ前後の価格に関するログ情報が含まれます。