ericmartel / codeception-email
为测试邮件功能时提供Codeception测试助手
This package is not auto-updated.
Last update: 2024-09-18 12:40:12 UTC
README
该框架定义了一个测试特质(接口),允许在各种邮件测试服务(如)之间进行标准化的邮件测试:
可用的测试方法
所有测试方法均定义在\Codeception\Email\TestsEmails
中。
haveEmails()
检查邮箱中是否有任何邮件
haveNumberOfEmails($expected)
检查邮箱中的邮件数量是否恰好为$expected
dontHaveEmails()
检查邮箱中没有任何邮件
haveUnreadEmails()
检查至少有一封未读邮件
haveNumberOfUnreadEmails($expected)
检查未读邮箱中的邮件数量是否恰好为$expected
dontHaveUnreadEmails()
检查邮箱中没有任何未读邮件
seeInOpenedEmailBody($expected)
验证$expected可以在打开的邮件正文中找到
seeInOpenedEmailSubject($expected)
验证$expected可以在打开的邮件主题中找到
dontSeeInOpenedEmailBody($expected)
检查$expected不能在打开的邮件正文中找到
dontSeeInOpenedEmailSubject($expected)
检查$expected不能在打开的邮件主题中找到
seeInEmailBody($email, $expected)
检查$expected在$emails的正文中是否存在
dontSeeInEmailBody($email, $expected)
检查$expected不在$emails的正文中
seeInEmailSubject($email, $expected)
检查$expected在$emails的主题中是否存在
dontSeeInEmailSubject($email, $expected)
检查$expected不在$emails的主题中
seeInOpenedEmailSender($expected)
检查打开的邮件的发件人是否包含$expected
dontSeeInOpenedEmailSender($expected)
检查打开的邮件的发件人是否不包含$expected
seeInEmailSender($email, $expected)
检查$email的发件人是否包含$expected
dontSeeInEmailSender($email, $expected)
检查$email的发件人是否不包含$expected
seeInOpenedEmailReplyTo($expected)
检查打开的邮件的回复地址是否包含$expected
dontSeeInOpenedEmailReplyTo($expected)
检查打开的邮件的回复地址是否不包含$expected
seeInEmailSender($email, $expected)
检查$email的回复地址是否包含$expected
dontSeeInEmailReplyTo($email, $expected)
检查$email的回复地址是否不包含$expected
seeInOpenedEmailRecipients($expected)
检查打开的邮件的收件人是否包含$expected
dontSeeInOpenedEmailRecipients($expected)
检查打开的邮件的收件人是否不包含$expected
seeInEmailRecipients($email, $expected)
检查$email的收件人是否包含$expected
dontSeeInEmailRecipients($email, $expected)
检查$email的收件人是否不包含$expected
seeInOpenedEmailToField($expected)
检查打开的邮件的收件人字段是否包含$expected
dontSeeInOpenedEmailToField($expected)
检查打开的邮件的收件人字段是否不包含$expected
seeInEmailToField($email, $expected)
检查$email的收件人字段是否包含$expected
dontSeeInEmailToField($email, $expected)
检查$email的收件人字段是否不包含$expected
seeInOpenedEmailCCField($expected)
检查打开的邮件的抄送字段是否包含$expected
dontSeeInOpenedEmailCCField($expected)
检查打开的邮件的抄送字段是否不包含$expected
seeInEmailCCField($email, $expected)
检查$email的抄送字段是否包含$expected
dontSeeInEmailCCField($email, $expected)
检查$email的抄送字段是否不包含$expected
seeInOpenedEmailBCCField($expected)
检查打开的邮件的暗送字段是否包含$expected
警告:电子邮件的暗送字段可能为空,这并不意味着不存在另一个相同的电子邮件实例。
dontSeeInOpenedEmailBCCField($expected)
检查已打开电子邮件的BCC字段不包含$expected
警告:电子邮件的暗送字段可能为空,这并不意味着不存在另一个相同的电子邮件实例。
seeInEmailBCCField($email, $expected)
检查电子邮件的BCC字段包含$expected
警告:电子邮件的暗送字段可能为空,这并不意味着不存在另一个相同的电子邮件实例。
dontSeeInEmailBCCField($email, $expected)
检查电子邮件的BCC字段不包含$expected
警告:电子邮件的暗送字段可能为空,这并不意味着不存在另一个相同的电子邮件实例。
seeInOpenedEmailPriority($expected)
检查已打开电子邮件的优先级是$expected
dontSeeInOpenedEmailPriority($expected)
检查已打开电子邮件的优先级不是$expected
seeInEmailPriority($email, $expected)
检查电子邮件的优先级是$expected
dontSeeInEmailPriority($email, $expected)
检查电子邮件的优先级不是$expected
为新的测试服务开发
在\Codeception\Email\EmailServiceProvider
中有一个定义测试方法所需接口的基本特性。所有这些方法都需要在新服务提供者中重载。它们被声明为受保护的,因为它们只由测试层使用,而不是用户自己。
getCurrentInbox()
返回完整的当前收件箱
getUnreadInbox()
返回包含未读电子邮件的收件箱
getOpenedEmail($fetchNextUnread = FALSE)
由测试调用的主方法,提供当前打开的电子邮件或下一个未读的电子邮件
getEmailBody($email)
返回电子邮件的正文
getEmailSubject($email)
返回电子邮件的主题
getSender($email)
返回包含电子邮件发送者的字符串
getEmailTo($email)
返回包含收件人字段的人员的字符串
getEmailCC($email)
返回包含CC字段的人员的字符串
getEmailBCC($email)
返回包含BCC字段的人员的字符串
getEmailRecipients($email)
返回包含所有收件人的字符串,如To、CC和如果提供BCC
grabBodyFromEmail
以字符串形式返回电子邮件正文
$email_body = $I->grabBodyFromEmail('text/html');
$doc = new DOMDocument();
$doc->loadHTML($email_body);
$login = $doc->getElementById('login')->textContent;
$password = $doc->getElementById('password')->textContent;
从'text/html'电子邮件MIME部分中获取登录名和密码。
待办事项
尽管这个框架应该足够用于大多数电子邮件测试场景,但剩余的功能需要实现
- HTML和纯文本内容
- 附件
- 优先级
许可协议
版权(c)2015-2016 Eric Martel,http://github.com/ericmartel emartel@gmail.com
特此授予任何获得本软件及其相关文档副本(“软件”)的人免费使用该软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许软件的受让人进行此类操作,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
本软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论该索赔、损害或其他责任是基于合同、侵权或其他原因,是否与软件或其使用或其他方式相关。