No Results
Search Tips:
- Please consider misspellings
- Try different search keywords
レッスン 1: テストユーティリティクラスの追加
このレッスンでは、前のチュートリアルで作成したトリガを検査するためのテストを追加します。テストデータを作成する必要があるため、他のテストクラスやテストメソッドからコール可能なテストデータ作成のためのメソッドが含まれるテストユーティリティクラスを追加します。
- 開発者コンソールで、 をクリックします。
- クラス名として「TestDataFactory」と入力し、[OK] をクリックします。
- 自動生成されたコードを削除し、次のコードを追加します。
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} - [Save (保存)] をクリックします。
もうひとこと...
- このクラスには、createOneInvoiceStatement という public メソッドが 1 つ含まれます。このメソッドは、次のレッスンのテストメソッドでテストデータとして使用する請求書明細と商品品目を作成します。このメソッドは、品目名を請求書に追加するかどうかを示す Boolean 引数を取ります。
- このクラスには、createOneInvoiceStatement で使用される 3 つのヘルパーメソッドも含まれます。これらのメソッドはすべて private で、このクラス内でのみ使用されます。
- Apex クラスにはテストデータ作成用の public メソッドを含めることができますが、この共通ユーティリティクラスは @isTest アノテーションで定義されます。このアノテーションを使用することの利点は、クラスが 3 MB の組織コードサイズ制限の対象外となるという点です。このクラスに含まれる public メソッドは、テストコードからのみコールできます。