概要
久々にCodeceptJSを使って自動テストする機会があり、いろいろ触っていると、以前利用できなかったmaiolslurpのhelperが、使えるようになっていたので、使ってみました。
自動テストにメール認証を含んでいる場合や、受信メールの文面がテスト対象になっている場合に、helperをインストールすれば、簡単に自動テストできます。
インストール
CodeceptJSの公式サイトの通りにできました。
npm i @codeceptjs/mailslurp-helper --save-dev
以前は、インストールでコケていたのですが。
当時のCodeceptJSのバージョンは、3.1.2
今は3.3.7、結構すすんでいました。
使い方
以前は、mailslurp-clientインスタンスを起動していましたが、
const { MailSlurp } = require("mailslurp-client");
現在は、codecept.conf.jsに、
helpers: {
MailSlurp: {
require: '@codeceptjs/mailslurp-helper',
apiKey: '<apiKeyFromMailSlurp>'
},
}
を記述しておけば、
受信用のカスタムメソッドを自前で記述することなく、inboxID宛てのメールは、
const inboxID = await I.haveNewMailbox();
const mailAddress = inboxID.emailAddress;
でCodeceptJSのメソッドのように使えるので、テストコードの見通しが良くなりました。
進化を続けているフレームワークを使うメリットは、大きいですね。
上記の事例では、emailAddressメソッドでメールアドレスを取得していますが、他にもhelperから使える検証メソッドがあって、詳しくはこちらを参照下さい。
総括
mailslurpで用意されているAPIを利用すれば、CodeceptJS以外の自動テストツール(MagicPod等)にメール受信を含む検証がローコードで容易に作成することができます。
Node.jsのテストコードを少しだけ記述する必要はありますが、CodeceptJSのhelperを利用して自動テストが構築できますので、なんとなく何をしているのか読めるテストコードを記述してテスト自動化を検討してみても良いかもしれません。