Newer Version Available
IsTest アノテーション
アプリケーションのテストに使用するコードのみを含むクラスおよびメソッドを定義するには @IsTest アノテーションを使用します。このアノテーションでは、括弧で囲まれ空白で区切られた複数の修飾子を使用できます。
@IsTest として定義されたクラスとメソッド�� private または public のいずれかと宣言する必要があります。@IsTest として定義されたクラスは最上位クラスである必要があります。
次に、2 つのテストメソッドを含む非公開テストクラスの例を示します。
@IsTest として定義されたクラスは、インターフェースまたは列挙値とすることはできません。
公開テストクラスのメソッドは、実行中のテスト、つまり、テストメソッドまたはテストメソッドから呼び出されるコードからのみコールすることができます。非テスト要求で公開メソッドをコールすることはできません。テストメソッドを実行できるさまざまな方法についての詳細は、「単体テストメソッドの実行」を参照してください。
@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) アノテーションで定義されている場合、SeeAllData=true は、SeeAllData キーワードを明示的に設定していないすべてのテストメソッドに適用されます。
- @IsTest(SeeAllData=true) アノテーションは、クラスまたはメソッドレベルで適用される場合にデータにアクセスできるようにするために使用します。ただし、含まれているクラスにすでに @IsTest(SeeAllData=true) アノテーションが付加されている場合、メソッドへの @IsTest(SeeAllData=false) アノテーションの付加は無視されます。この場合、そのメソッドは組織のすべてのデータにアクセスできます。メソッドへの @IsTest(SeeAllData=true) アノテーションの付加は、そのメソッドにおいて、クラスの @IsTest(SeeAllData=false) アノテーションよりも優先されます。
- @IsTest(SeeAllData=true) アノテーションと @IsTest(IsParallel=true) アノテーションは、同じ Apex メソッドで同時に使用することはできません。
@IsTest(OnInstall=true) アノテーション
@IsTest(OnInstall=true) アノテーションを使用して、パッケージのインストール時に実行される Apex テストを指定します。このアノテーションは、管理パッケージまたは未管理パッケージのテストで使用されます。このアノテーションを付加したテストメソッドまたはこのアノテーションを含むテストクラスの一部であるメソッドのみが、パッケージのインストール時に実行されます。パッケージのインストールが成功するためには、パッケージのインストール時に実行というアノテーション指定されたテストが正常に終了する必要があります。パッケージのインストール時に失敗したテストをバイパスすることはできなくなりました。このアノテーションが付加されていないテストメソッドまたはクラス、あるいは @IsTest(OnInstall=false) または @IsTest でアノテーションされたテストメソッドまたはクラスは、インストール時に実行されません。
パッケージのインストールとアップグレード時に実行される、IsTest(OnInstall=true) でアノテーションされたテストは、コードカバー率に反映されません。ただし、パッケージ作成操作中はコードカバー率は追跡され、計算されます。管理パッケージからインストールされた Apex コードは、コードカバー率の組織レベルの要件から除外されるため、影響を受ける可能性はありません。ただし、管理パッケージのテストカバー率を追跡する場合は、コードカバー率の統計が更新されるように、パッケージのインストール���たはアップグレード操作の外側でこれらのテストを再実行する必要があります。パッケージのインストールはコードカバー率の要件によってブロックされません。
次に、パッケージのインストール時に実行されるテストメソッドにアノテーションを付加する方法の例を示します。この例の test1 は実行されますが、test2 と test3 は実行されません。
@IsTest(IsParallel=true) アノテーション
- @IsTest(IsParallel=true) アノテーションの考慮事項
-
- このアノテーションは、並列テストを無効にする設定を上書きします。
- @IsTest(SeeAllData=true) アノテーションと @IsTest(IsParallel=true) アノテーションは、同じ Apex メソッドで同時に使用することはできません。