IsTest アノテーション
isTest として定義されたクラスとメソッドは private または public のいずれかと宣言する必要があります。isTest として定義したクラスは最上位クラスである必要があります。
次に、2 つのテストメソッドを含む非公開テストクラスの例を示します。
isTest として定義されたクラスは、インターフェースまたは enum 値とすることはできません。
公開テストクラスのメソッドは、実行中のテスト、つまり、テストメソッドまたはテストメソッドから呼び出されるコードからのみコールすることができ、テスト以外の要求からコールすることはできません。テストメソッドを実行できるさまざまな方法についての詳細は、「単体テストメソッドの実行」を参照してください。
IsTest(SeeAllData=true) アノテーション
Salesforce API バージョン 24.0 以降を使用して保存された Apex コードでは、テストクラスおよび個々のテストメソッドに対して、テストが作成していない既存のデータを含む組織のすべてのデータへのアクセス権を付与する���は、isTest(SeeAllData=true) アノテーションを使用します。Salesforce API バージョン 24.0 以降を使用して保存した Apex コードでは、デフォルトで、テストメソッドは組織の既存のデータにアクセスできません。ただし、Salesforce API バージョン 23.0 以前で保存されたテストコードは、引き続き、組織のすべてのデータにアクセスでき、そのデータアクセス権は変わりません。「単体テストの組織データとテストデータの分離」を参照してください。
- IsTest(SeeAllData=true) アノテーションの考慮事項
-
- テストクラスが isTest(SeeAllData=true) アノテーションで定義されている場合、このアノテーションは、テストメソッドが @isTest アノテーションと testmethod キーワードのどちらを使用して定義されているかにかかわらず、すべてのテストメソッドに適用されます。
- isTest(SeeAllData=true) アノテーションは、クラスまたはメソッドレベルで適用される場合にデータにアクセスできるようにするために使用します。ただし、含まれているクラスがすでに isTest(SeeAllData=true) アノテーションで定義されている場合、メソッドでの isTest(SeeAllData=false) の使用によって、そのメソッドの組織データアクセスが制限されることはありません。この場合、メソッドは組織のすべてのデータにアクセスできます。
IsTest(OnInstall=true) アノテーション
IsTest(OnInstall=true) アノテーションを使用して、パッケージのインストール時に実行される Apex テストを指定します。このアノテーションは、管理パッケージまたは未管理パッケージのテストで使用されます。このアノテーションを付加したテストメソッドまたはこのアノテーションを含むテストクラスの一部であるメソッドのみが、パッケージのインストール時に実行されます。パッケージのインストールが成功するためには、パッケージのインストール時に実行というアノテーション指定されたテストが正常に終了する必要があります。パッケージのインストール時に失敗したテストをバイパスすることはできなくなりました。 このアノテーションが付加されていないテストメソッドまたはクラス、または isTest(OnInstall=false) または isTest でアノテーションされたテストメソッドまたはクラスは、インストール時に実行されません。
次に、パッケージのインストール時に実行されるテストメソッドにアノテーションを付加する方法の例を示します。この例の test1 は実行されますが、test2 と test3 は実行されません。