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

Apex コードのテスト

管理パッケージをアップロードする前に、Apex コードのテストを作成および実行して、最小コードカバー率要件を満たす必要があります。また、パッケージを AppExchange にアップロードするときには、すべてのテストがエラーなしで実行される必要があります。

Apex コードを使用するアプリケーションとコンポーネントをパッケージ化するには、次の条件を満たす必要があります。

  • Apex コードの少なくとも 75% が単体テストでカバーされており、かつすべてのテストが成功している。
    次の点に注意してください。
    • 本番組織にリリースするときに、組織の名前空間内のすべての単体テストが実行されます。
    • System.debug へのコールは、Apex コードカバー率の対象とはみなされません。
    • テストメソッドとテストクラスは、Apex コードカバー率の対象とはみなされません。
    • Apex コードの 75% が単体テストでカバーされている必要がありますが、カバー率を上げることだけに集中すべきではありません。アプリケーションのすべての使用事例 (正・誤両方の場合や単一データだけでなく複数データの場合) の単体テストを作成するようにしてください。このような多様な使用事例のテストコードを実装することが 75% 以上のカバー率につながります。
  • すべてのトリガについて何らかのテストを行う。
  • すべてのクラスとトリガが正常にコンパイルされる。
次のサンプルは、「スタンドアロン Lightning アプリケーションを作成する」で入手可能な経費追跡アプリケーションでコントローラクラスと共に使用される Apex テストクラスを示しています。
1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17@isTest
18class TestExpenseController {
19    static testMethod void test() {
20        //Create new expense and insert it into the database        
21        Expense__c exp = new Expense__c(name='My New Expense',
22                             amount__c=20, client__c='ABC',
23                             reimbursed__c=false, date__c=null);
24         ExpenseController.saveExpense(exp);
25
26        //Assert the name field and saved expense
27        System.assertEquals('My New Expense',
28                           ExpenseController.getExpenses()[0].Name,
29                          'Name does not match');
30        System.assertEquals(exp, ExpenseController.saveExpense(exp));
31    }
32}

Apex クラスは手動でパッケージに追加する必要があります。

メモ

Apex コードの配布についての詳細は、Apex コード開発者ガイド』を参照してください。