【Salesforce】Apex Test で特定のユーザでロジックをテストする方法

  • Salesforce
  • Apex
  • ApexTest

今回は、Salesforceで特定のユーザでロジックをテストする際のテストコードの書き方を備忘録として紹介します。

Salesforceでは、テストクラス内で特定のユーザとして操作を行うために System.runAs(user) メソッドを使用します。

これは、異なるユーザーロールやプロファイルに基づく権限制御のテストを行う際に特に利用するメソッドです。

テストクラスの書き方

簡単な解説

このテストメソッドでは、まず新たなユーザを作成しています。

その後 System.runAs(u) ブロック内でレコードの作成を行い、そのレコードが正しく作成されたかを確認しています。

この System.runAs(u) ブロック内で行われる操作は、指定されたユーザ u として行われます。

ただし、System.runAs()メソッドが影響を与えるのはユーザの権限やロールだけであり、ガバナ制限や他の制限については影響を与えません。

また、テストユーザの作成はテストメソッドのガバナ制限に対してカウントされません。

ひとこと

Salesforce で想定外の挙動をする時には、権限が関係する場合が多いです。

ApexTest で確認できる範囲で、テストクラスを書いておくとより安全ですね。

外部コールアウトやバッチクラスのテストも忘れがちなので、備忘録としてメモしておきましょう。

/apex-test-callout/

/apex-test-batch/

Apex Test はしっかり書くように日頃から心がけましょうね。

最終的な工数やトラブルの削減につながりますよ。

Sponsored