Apex コードのテスト
管理パッケージをアップロードする前に、Apex コードのテストを作成および実行して、最小コードカバー率要件を満たす必要があります。また、パッケージを AppExchange にアップロードするときには、すべてのテストがエラーなしで実行される必要があります。
Apex コードを使用するアプリケーションとコンポーネントをパッケージ化するには、次の条件を満たす必要があります。
- Apex コードの少なくとも 75% が単体テストでカバーされており、かつすべてのテストが成功している。 次の点に注意してください。
- 本番組織に Apex をリリースするときに、組織の名前空間内の各単体テストがデフォルトで実行されます。
- System.debug へのコールは、Apex コードカバー率の対象とはみなされません。
- テストメソッドとテストクラスは、Apex コードカバー率の対象とはみなされません。
- Apex コードの 75% が単体テストでカバーされている必要がありますが、カバー率を上げることだけに集中すべきではありません。アプリケーションのすべての使用事例 (正・誤両方の場合や単一データだけでなく複数データの場合) の単体テストを作成するようにしてください。このアプローチにより、75% 以上の単体テストのカバー率を達成できます。
- すべてのトリガについて何らかのテストを行う。
- すべてのクラスとトリガが正常にコンパイルされる。
次のサンプルは、コンポーネントに接続されたカスタムオブジェクトの Apex テストクラスを示します。
1@isTest
2class TestExpenseController {
3 static testMethod void test() {
4 //Create new expense and insert it into the database
5 Expense__c exp = new Expense__c(name='My New Expense',
6 amount__c=20, client__c='ABC',
7 reimbursed__c=false, date__c=null);
8 ExpenseController.saveExpense(exp);
9
10 //Assert the name field and saved expense
11 System.assertEquals('My New Expense',
12 ExpenseController.getExpenses()[0].Name,
13 'Name does not match');
14 System.assertEquals(exp, ExpenseController.saveExpense(exp));
15 }
16}
Apex コードの配布についての詳細は、『Apex コード開発者ガイド』を参照してください。