SalesforceのTestケースでメール送信がされたか確認する

以前、Salesforceで、メール送信がちゃんと行われたかどうかを確認する方法をご紹介しました。

運用時は、実際の送信結果をそれで確認できるのですが、テストの場合は、どうでしょうか。

「@isTest」を用いたテスト時は、実際にはメールが送信されません。そうなると、トリガーによるメール送信などをワークフローやプロセスビルダーで記述していると、確認の方法がないので困ってしまいますね。

そんな場合は、デバッグログで確認することができます。

ワークフロー内で条件によってメールを送信する/しないを分けている場合は、メールを送信した場合、以下のような「WF_EMAIL_SENT」を含んだログが追加されています。

11:07:36.144 |WF_RULE_EVAL_BEGIN|ワークフロー
11:07:36.144 |WF_CRITERIA_BEGIN|[]|<ルール名>xx1p0000000Axxx|xxQp00000001xxx|ON_ALL_CHANGES|0
11:07:36.144 |WF_FORMULA|Formula:ENCODED:[treatNullAsNull]true|Values:
11:07:36.144 |WF_CRITERIA_END|true
11:07:36.144 |WF_SPOOL_ACTION_BEGIN|ワークフロー
11:07:36.144 |WF_ACTION| フロートリガ: 1;
11:07:36.144 |WF_RULE_EVAL_END
11:07:36.144 |WF_FLOW_ACTION_BEGIN|xxLp00000004xxx
11:07:36.879 |FLOW_CREATE_INTERVIEW_BEGIN|x0Dp0000000Cxxx|x00p00000000xxx|x01p0000000Axxx
11:07:36.879 |FLOW_CREATE_INTERVIEW_END|x819a37b3a4e6f5dc3a2a23031815a351729c3-xxxx|メール配信
11:07:36.880 |FLOW_START_INTERVIEWS_BEGIN|1
11:07:36.880 |FLOW_START_INTERVIEW_BEGIN|x819a37b3a4e6f5dc3a2a23031815a351729c3-xxxx|メール配信
11:07:36.880 |FLOW_START_INTERVIEW_END|x819a37b3a4e6f5dc3a2a23031815a351729c3-xxxx|メール配信
11:07:36.880 |WF_EMAIL_SENT|Reference:.<メールアラート名>|Recipients:<メール送信先> |CcEmails: 
11:07:36.880 |FLOW_START_INTERVIEWS_END|1
11:07:36.144 |WF_FLOW_ACTION_END|x9Lp0000000xxxxx
11:07:36.144 |WF_ACTIONS_END| フロートリガ: 1;

逆に、メール送信がされていない場合は、この行は表示されていません。