用于 CodeceptJS 的 MailSlurp 助手
用于测试电子邮件的 MailSlurp 助手 MailSlurp 服务。 。 。 . MailSlurp为每次测试创建可支配邮箱,并在测试后将其取出.
设置
注册并获取 API 密钥 邮件流。 。 。 .
npm i @codeceptjs/mailslurp-helper --save
启用帮助 codecept.conf.js。 。 。 .
helpers: {
MailSlurp: {
apiKey: '<insert api key here>',
require: '@codeceptjs/mailslurp-helper'
},
}
使用大小写
在测试中使用此助手来检查电子邮件交互 。 最受欢迎的
- 账户激活
- 恢复被遗忘的密码
- 行动核查
使用大小写: 恢复密码
const mailbox = await I.haveNewMailbox();
// wait 10 seconds for an email
const email = await I.waitForLatestEmail(10);
I.seeInEmailSubject('Restore Password');
I.seeInEmailBody('Click link to restore password');
const restoreUrl = email.body.match(/http(s):\/\/(.*?)\s/)[0];
I.amOnPage(restoreUrl);
在邮箱间切换
const mailbox1 = await I.haveNewMailbox();
const mailbox2 = await I.haveNewMailbox();
I.openMailbox(mailbox1);
const email = I.waitForEmailMatching({ subject: 'Register' });
在测试中使用自定义请求
const assert = require('assert');
const mailbox = await I.haveNewMailbox();
const email = await I.waitForEmailMatching({ subject: 'Thanks' });
assert.eql(email.subject, 'Thanks for registering')
自由主义
麻省理工学院
API 密码
目录
- 配置
- 配置
- 有新邮箱
- 已有的邮件箱
- 打开邮箱
- 发送电子邮件
- 等待 Latest 电子邮件
- 等待电子邮件匹配
- 等待邮件
- 抓取电子邮件
- 抓取邮件箱中的所有邮件
- 查看电子邮件对象
- 不见电子邮件对象
- 见电子邮件Body
- 不见电子邮件Body
- 参见电子邮件地址
- ưμ㼯A
- 不见电子邮件 Subject 参数
- 参见电子邮件发送次数
- 参见电子邮件附件
配置
允许在 E2E 测试中通过 MailSlurp 服务。 。 。 . 在 MailSlurp 注册账户开始 .
需要帮助 apiKey 从 MailSlurp 开始
helpers: {
MailSlurp: {
apiKey: '<insert api key here>',
require: '@codeceptjs/mailslurp-helper'
},
}
使用.env 文件和环境变量存储敏感数据如 API 密钥
配置
apiKey(需要) - MailSlurp 的 api 密钥timeout(默认: 10000) - 等待以毫秒计的电子邮件的时间 .debug(默认: 假) - 打印调试日志
类型 : {apiKey: 字符串,超时 : 编号*,调试: 布尔{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢
属性
有新邮箱
创建新邮箱。 测试后会删除一个邮箱. 切换到上次创建的邮箱 .
const mailbox = await I.haveNewMailbox();
已有的邮件箱
使用现有的邮箱.
const mailbox = await I.haveExistingMailbox('94cxxxf4-7231-46ce-9f40-xxxcae39xxxx');
参数
mailboxId字符串 已存在的 MailSlurp 信箱的标识 .
回返 答应< 收件箱 >
打开邮箱
将当前邮箱更改为指定的邮箱 :
const mailbox1 = await I.haveMailbox();
const mailbox2 = await I.haveMailbox();
// mailbox2 is now default mailbox
// switch back to mailbox1
I.openMailbox(mailbox)
参数
mailbox
发送电子邮件
从当前邮箱发送邮件, 由 I.haveNewMailbox()。 。 。 .
I.sendEmail({
to: ['[email protected]'],
subject: 'Hello',
body: 'World'
});
参数
data
等待 Latest 电子邮件
等邮箱里的第一个邮件. 如果邮箱不是空的 - 打开最后一个邮件 .
I.waitForLatestEmail()
// wait for 30 seconds for an email
I.waitForLatestEmail(30);
参数
sec额? 等待秒数 .
回返 答应< 电子邮件 > 收到一封电子邮件.
等待电子邮件匹配
等待精确的电子邮件匹配查询 。 您可以匹配电子邮件 from, (中文(简体) ), to, (中文(简体) ), subject, (中文(简体) ), cc, (中文(简体) ), bcc 字段.
我的默认, 非字符串匹配已启用, 因此它搜索是否包含字符串 。 严格匹配( 平等)
预置一个值 = 前缀.
// wait for email with 'password' in subject
const email = await I.waitForEmailMatching({
subject: 'password',
});
// wait 30 seconds for email with exact subject
const email = await I.waitForEmailMatching({
subject: '=Forgot password',
}, 30);
//
const email = await I.waitForEmailMatching({
from: '@mysite.com', // find anything from mysite
subject: 'Restore password', // with Restore password in subject
});
参数
query对象 查找电子邮件sec额? 等待秒数 .
回返 答应< 电子邮件 > 收到一封电子邮件.
等待邮件
等邮箱里的邮件数 返回列表中的最后一个邮件 .
// wait for 2 emails
I.waitForNthEmail(2);
// wait for 5 emails for 60 seconds
I.waitForNthEmail(5, 60);
// wait for 2 emails and return the last one
const email = await I.waitForNthEmail(2);
参数
numbersec
抓取电子邮件
返回一组与查询匹配的电子邮件 .
类似 waitForEmailMatching 但返回一系列电子邮件.
// return 2 emails from '[email protected]'
const emails = await I.grabEmailsMatching({ from: '[email protected]'}, 2);
参数
query对象 查找电子邮件num额? 要返回的电子邮件数量 .
回返 答应[电子邮件] 匹配条件的电子邮件.
抓取邮件箱中的所有邮件
从邮箱返回所有邮件 .
const emails = await I.grabAllEmailsFromMailbox();
回返 答应[电子邮件] 电子邮件.
查看电子邮件对象
检查当前电子邮件主题包含文本 .
I.seeInEmailSubject('Restore password');
需要打开的电子邮件 。 使用其中之一 waitForEmail* 打开的方法。 或手动打开 I.openEmail() 方法.
参数
text
不见电子邮件对象
检查当前电子邮件主题不包含文本 .
I.seeInEmailSubject('Restore password');
需要打开的电子邮件 。 使用其中之一 waitForEmail* 打开的方法。 或手动打开 I.openEmail() 方法.
参数
text
见电子邮件Body
检查当前邮件正文包含文本 .
I.seeInEmailBody('Click link');
需要打开的电子邮件 。 使用其中之一 waitForEmail* 打开的方法。 或手动打开 I.openEmail() 方法.
参数
text
不见电子邮件Body
检查当前电子邮件正文是否包含文本 .
I.dontSeeInEmailBody('Click link');
需要打开的电子邮件 。 使用其中之一 waitForEmail* 打开的方法。 或手动打开 I.openEmail() 方法.
参数
text
参见电子邮件地址
检查电子邮件来自指定的地址 .
I.seeEmailIsFrom('[email protected]');
需要打开的电子邮件 。 使用其中之一 waitForEmail* 打开的方法。 或手动打开 I.openEmail() 方法.
参数
text
ưμ㼯A
检查当前电子邮件主题是否等同于文本 .
I.seeEmailSubjectEquals('Restore password');
需要打开的电子邮件 。 使用其中之一 waitForEmail* 打开的方法。 或手动打开 I.openEmail() 方法.
参数
text
不见电子邮件 Subject 参数
检查当前电子邮件主题不等于文本 .
I.dontSeeEmailSubjectEquals('Restore password');
需要打开的电子邮件 。 使用其中之一 waitForEmail* 打开的方法。 或手动打开 I.openEmail() 方法.
参数
text
参见电子邮件发送次数
检查当前邮件是否期望附件数量 .
I.seeNumberOfEmailAttachments(2);
需要打开的电子邮件 。 使用其中之一 waitForEmail* 打开的方法。 或手动打开 I.openEmail() 方法.
参数
number
参见电子邮件附件
检查当前邮件是否有带有指定名称的附件 .
I.seeEmailAttachment('ExampleAttachment.pdf');
注意Mailslurp SDK删除以附件为名的特殊字符, 例如"example-Attachment.pdf"将取名"example-Attachment.pdf".
需要打开的电子邮件 。 使用其中之一 waitForEmail* 打开的方法。 或手动打开 I.openEmail() 方法.
参数
nameRegExp