ericmartel/codeception-email

为测试邮件功能时提供Codeception测试助手

1.0.3 2020-03-10 16:27 UTC

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

特此授予任何获得本软件及其相关文档副本(“软件”)的人免费使用该软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许软件的受让人进行此类操作,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

本软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论该索赔、损害或其他责任是基于合同、侵权或其他原因,是否与软件或其使用或其他方式相关。