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

テストユーティリティクラスの追加

このレッスンでは、前のチュートリアルで作成したトリガを検査するためのテストを追加します。テストデータを作成する必要があるため、他のテストクラスやテストメソッドからコール可能なテストデータ作成のためのメソッドが含まれるテストユーティリティクラスを追加します。

  1. 開発者コンソールで、[File (ファイル)] | [New (新規)] | [Apex Class (Apex クラス)] をクリックします。
  2. クラス名として「TestDataFactory」と入力し、[OK] をクリックします。
  3. 自動生成されたコードを削除し、次のコードを追加します。
    1swfobject.registerObject("clippy.codeblock-0", "9");
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17@isTest
    18public class TestDataFactory {
    19
    20    public static Invoice_Statement__c createOneInvoiceStatement(
    21                                                 Boolean withLineItem) { 
    22        // Create one invoice statement
    23        Invoice_Statement__c testInvoice = createInvoiceStatement();    
    24        
    25        if (withLineItem == true) {
    26            // Create a merchandise item
    27            Merchandise__c m = createMerchandiseItem('Orange juice');
    28            // Create one line item and associate it with the invoice statement.        
    29            AddLineItem(testInvoice, m);
    30        }                   
    31        
    32        return testInvoice;
    33    }            
    34    
    35    // Helper methods
    36    //
    37    private static Merchandise__c createMerchandiseItem(String merchName) {
    38        Merchandise__c m = new Merchandise__c(
    39            Name=merchName,
    40            Description__c='Fresh juice',
    41            Price__c=2,
    42            Total_Inventory__c=1000);
    43        insert m;
    44        return m;
    45    }
    46    
    47    private static Invoice_Statement__c createInvoiceStatement() {        
    48        Invoice_Statement__c inv = new Invoice_Statement__c(                
    49            Description__c='Test Invoice');      
    50        insert inv;
    51        
    52        return inv;
    53    } 
    54    
    55    private static Line_Item__c AddLineItem(Invoice_Statement__c inv, 
    56                                            Merchandise__c m) {
    57        Line_Item__c lineItem = new Line_Item__c(
    58                                    Invoice_Statement__c = inv.Id, 
    59                                    Merchandise__c = m.Id, 
    60                                    Unit_Price__c = m.Price__c, 
    61                                    Units_Sold__c = (Double)(10*Math.random()+1));
    62        insert lineItem;
    63        
    64        return lineItem;
    65    }       
    66}
  4. [File (ファイル)] | [Save (保存)] をクリックします。

もうひとこと...

  • このクラスには、createOneInvoiceStatement という public メソッドが 1 つ含まれます。このメソッドは、次のレッスンのテストメソッドでテストデータとして使用する請求書明細と商品品目を作成します。このメソッドは、品目名を請求書に追加するかどうかを示す Boolean 引数を取ります。
  • このクラスには、createOneInvoiceStatement で使用される 3 つのヘルパーメソッドも含まれます。これらのメソッドはすべて private で、このクラス内でのみ使用されます。
  • Apex クラスにはテストデータ作成用の public メソッドを含めることができますが、この共通ユーティリティクラスは @isTest アノテーションで定義されます。このアノテーションを使用することの利点は、クラスが 3 MB の組織コードサイズ制限の対象外となるという点です。このクラスに含まれる public メソッドは、テストコードからのみコールできます。