このモジュールでは、モジュール6で作成したダブルブッキングを回避するRejectDoubleBookingトリガのテストを実行します。
開発者コンソールで、 File > New > Apex Class の順にクリックし、クラス名に TestRejectDoubleBooking と入力し、 OK をクリックします。
クラスをpublicから private に変更し、@isTest というアノテーションを追加します:
@isTest
private class TestRejectDoubleBooking{
}
TestRejectDoubleBookingクラスにTestSingleBooking()メソッドを追加します。これにより、RejectDoubleBookingトリガが、通常の予約(ダブルブッキングが起きていない予約)を妨げるものでないことを確認します。:
static testmethod void TestSingleBooking() {
Datetime now = System.now();
Speaker__c speaker = new Speaker__c(First_Name__c='John', Last_Name__c='Smith');
insert speaker;
Session__c session = new Session__c(Name='Some Session', Session_Date__c=now);
insert session;
Session_Speaker__c assignment =
new Session_Speaker__c(Session__c=session.Id, Speaker__c=speaker.Id);
Test.startTest();
Database.SaveResult result = Database.insert(assignment, false);
Test.stopTest();
System.assert(result.isSuccess());
}
ファイルを保存します
ウィンドウの右上にある[Run Test]をクリックします
ウィンドウの下部にある Tests タブをクリックし、テスト結果を確認します
TestRejectDoubleBookingクラスにTestDoubleBooking()メソッドを追加します。これにより、RejectDoubleBookingトリガが、実際にダブルブッキングを却下することを確認します:
static testmethod void TestDoubleBooking() {
Datetime now = System.now();
Speaker__c speaker = new Speaker__c(First_Name__c='John', Last_Name__c='Smith');
insert speaker;
Session__c session1 = new Session__c(Name='Session 1', Session_Date__c=now);
insert session1;
Session__c session2 = new Session__c(Name='Session 2', Session_Date__c=now);
insert session2;
Session_Speaker__c assignment1 =
new Session_Speaker__c(Session__c=session1.Id, Speaker__c=speaker.Id);
insert assignment1;
Session_Speaker__c assignment2 =
new Session_Speaker__c(Session__c=session2.Id, Speaker__c=speaker.Id);
Test.startTest();
Database.SaveResult result = Database.insert(assignment2, false);
Test.stopTest();
System.assert(!result.isSuccess());
}
ファイルを保存します
ウィンドウの右上にある Run Test をクリックします
ウィンドウの下部にある Tests タブをクリックし、テスト結果を確認します