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

レッスン 1: テストユーティリティクラスの追加

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

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

もうひとこと...

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