TestVisible アノテーション
TestVisible アノテーションを使用すると、テストクラス外にある別のクラスの非公開メンバーまたは保護メンバーにテストメソッドからアクセスできるようになります。これらのメンバーには、メソッド、メンバー変数、内部クラスが含まれます。このアノテーションは、テストを実行する目的でのみ、権限の高いアクセスレベルを有効にします。このアノテーションによって、非テストクラスからアクセスするメンバーの表示が変わることはありません。
このアノテーションでは、メソッドのアクセス修飾子やメンバー変数にテストメソッドでアクセスする場合に、それらを public に変更する必要はありません。たとえば、外部クラスに対して非公開メンバー変数を表示せずに、テストメソッドからアクセスできるようにする場合は、TestVisible アノテーションを変数定義に追加します。
この例では、非公開クラスメンバー変数と非公開メソッドに TestVisible アノテーションを付加する方法を示します。
1public class TestVisibleExample {
2 // Private member variable
3 @TestVisible private static Integer recordNumber = 1;
4
5 // Private method
6 @TestVisible private static void updateRecord(String name) {
7 // Do something
8 }
9}上記のクラスを使用するテストクラスを次に示します。アノテーションが付加されたメンバー変数とメソッドにアクセスするテストメソッドが含まれています。
1@isTest
2private class TestVisibleExampleTest {
3 @isTest static void test1() {
4 // Access private variable annotated with TestVisible
5 Integer i = TestVisibleExample.recordNumber;
6 System.assertEquals(1, i);
7
8 // Access private method annotated with TestVisible
9 TestVisibleExample.updateRecord('RecordName');
10 // Perform some verification
11 }
12}