Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

Apex コードをテストするためのガイド

公開日: May 1, 2026
説明
Salesforce では、コードの少なくとも 75% をテストする単体テストがすべてのリリース済みコードに必要です。コードを開発またはリリースするときは、以下を確認する必要がある場合があります:
  • コードカバー率が 75% 未満になっているのはなぜですか?
  • コードカバー率を上げるにはどうすればよいですか?
  • 優れた Apex 単体テストについて Salesforce のベストプラクティスの提案は何ですか?
解決策
コードカバー率
  • 本番環境にコードをリリースするには、Apex の 75% 以上が単体テスト対象になっている必要があります。
  • すべてのトリガは 1 行以上のテストカバレッジを持つ必要があります。
  • 可能であれば単体テストで 100% のコードをカバーすることを推奨します。
  • System.debug へのコールは、単体テストの Apex コードカバー率の対象とはみなされません。
注意: テストで要求される Apex コードのカバー率は 75% を満たすこととなっていますが、本来の目的はカバー率ではありません。成功と失敗、バルクと単体レコードのケースを含めて、アプリケーションのすべてのユースケースをカバーします。これにより、単体テストで 75% のコードをカバーすることにつながります。
 
テストのベストプラクティス
  • アプリケーション内のクラスを個別にテストします。単一のテストでアプリケーション全体をテストしないでください。
  • 条件ロジックの場合 (3 項演算子など)、コードロジックの各分岐を実行します。
  • 有効な入力および無効な入力を使用してメソッドへのコールを行います。
  • 予測された例外をtry…catch ブロックで補足している場合を除き、例外が発生しなければテストは正常に終了します。
  • 例外を捕捉するだけでなく、捕捉されたすべての例外を処理します。
  • 一括トリガ機能を実行します。テストで最低 20 件のレコードを使用します。
  • ORDER BY キーワードを使用し、レコードが予期された順序で返されるようにします。
  • レコード ID が連番になると想定しないでください。
    • 複数のレコードを同じ要求で挿入しない限り、レコード ID は昇順で作成されません。 たとえば、取引先 A を作成し、ID 001D000000IEEmT を受信した後で取引先 B を作成した場合、取引先 B の ID が次に大きい順序になる場合とならない場合があります。

テストデータの設定
  • テストクラスで必要なデータを作成して、テストが特定の組織のデータに依存する必要がないようにします。
  • starttest メソッドをコールする前にすべてのテストデータを作成します。
  • テストはデータベースにコミットしないので、テストの完了後にデータを削除する必要はありません。
  • テストされるべきものだけでなく、テスターがデータ、期待される結果などについて仮定したコメントを記述します。

Apex テストメソッドおよびアノテーション
  • すべてのテストに isTest アノテーションを使用します。isTest アノテーションで定義したクラスは、すべての Apex コードの組織内の上限の 3 MB には含まれません。IsTest アノテーションを参照してください。
  • runAs メソッドを使用して、さまざまなユーザコンテキストでアプリケーションをテストします。
  • System.assert メソッドを使用して、コードが適切に動作することを検証します。

コードカバー率の確認
  • [設定] からクイック検索で「Apex クラス」を検索し、組織の未管理パッケージのコードの計算済みカバー率を参照することができます。
  • 開発者コンソールには、個々のクラスとトリガによって分解されたコードカバー率の情報を示す code coverage 列があります
  • code coverage 列のカバー率をクリックすると、テストでカバーされるコード行が青色で強調表示され、テストでカバーされていない行は赤色でハイライト表示されます。また、テストによって特定の行が実行された回数を表示します。

複数のテストの実行
  • Salesforce ユーザインターフェースでは、[すべてのテストを実行] をクリックしてすべてのテストを同時に実行しようとする代わりに、組織内のクラスを個別にテストする必要がある場合があります。

Salesforce CLI のインストール
SFコマンドでのテスト
ナレッジ記事番号

000385650

 
読み込み中
Salesforce Help | Article