この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Newer Version Available

This content describes an older version of this product. View Latest

isTest(SeeAllData=True) アノテーションの使用

IsTest(SeeAllData=true) を使用して、テストクラスまたはテストメソッドにアノテーションを付加して、組織のレコードへのデータアクセス権を開放します。IsTest(SeeAllData=true) アノテーションはデータクエリに適用されますが、レコードの作成または変更 (削除を含む) には適用されません。アノテーションを使用する場合でも、新規レコードおよび変更されたレコードは Apex テストでロールバックされます。

クラスに @isTest(SeeAllData=true) アノテーションを付加することによって、テストメソッドからすべての組織レコードにアクセスできるようになります。ただし、最善の方法は、データサイロで @isTest(SeeAllData=false) を使用して Apex テストを実行することです。使用している API のバージョンによっては、デフォルトのアノテーションが異なる場合があります。

警告

この例では、@isTest(SeeAllData=true) アノテーションを使用して���ストクラスを定義する方法を示します。このクラスのすべてのテストメソッドは組織のすべてのデータにアクセスできます。
この 2 番目の例では、テストメソッドに @isTest(SeeAllData=true) アノテーションを適用する方法を示します。テストメソッドのクラスにはアノテーションが付加されていないため、メソッドがすべてのデータにアクセスできるようにするには、メソッドにアノテーションを付加する必要があります。2 番目のテストメソッドにはこのアノテーションはありません。そのため、テストメソッドでアクセスできるデータはテストメソッドで作成されたデータのみになります。組織の管理に使用するオブジェクト (ユーザなど) にはアクセスできます。
@isTest(SeeAllData=true) アノテーションの考慮事項
  • テストクラスが @isTest(SeeAllData=true) アノテーションで定義されている場合、このアノテーションは、そのすべてのテストメソッドに適用されます。このアノテーションが適用されるのは、テストメソッドが @isTest アノテーション、または (非推奨の) testMethod キーワードを使用して定義されている場合です。
  • @isTest(SeeAllData=true) アノテーションは、クラスまたはメソッドレベルで適用される場合にデータにアクセスできるようにするために使用します。ただし、含まれているクラスにすでに @isTest(SeeAllData=true) アノテーションが付加されている場合、メソッドへの @isTest(SeeAllData=false) アノテーションの付加は無視されます。この場合、そのメソッドは組織のすべてのデータにアクセスできます。メソッドへの @isTest(SeeAllData=true) アノテーションの付加は、そのメソッドにおいて、クラスの @isTest(SeeAllData=false) アノテーションよりも優先されます。
  • @isTest(SeeAllData=true) アノテーションと @isTest(isParallel=true) アノテーションは、同じ Apex メソッドで同時に使用することはできません。