テストメソッドが実行完了すると、トランザクションは自動的にロールバックされます。
テストクラスからApexメール送信機能を呼び出して、実際に送信しないことです。
テストクラスに Limits.getEmailInvocations を使用してApex電子メール送信されるかどうかを確認できます。
Apex電子メール送信機能
public with sharing class EmailUtility {
public static void sendPlainTextEmail(List<String> toAddresses, String subject, String body) {
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.settoAddresses(toAddresses);
mail.setSubject(subject);
mail.setPlainTextBody(body);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
}
}
テストクラス(Apex電子メール送信確認)
@isTest
private class EmailUtilityTest {
@isTest
static void testEmailUtility() {
Test.StartTest();
EmailUtility.sendPlainTextEmail(new List<String>{'test@test.com'}, 'Unit Test X', 'Unit Test');
Test.stopTest();
// Apex電子メール送信検証
System.assertEquals(1, Limits.getEmailInvocations());
}
}