ericmartel/codeception-email 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ericmartel/codeception-email

Composer 安装命令:

composer require ericmartel/codeception-email

包简介

Provides test helpers for Codeception when testing email functionality

README 文档

README

This framework defines a testing Trait (interface) which allows standardized email testing across various email testing services, such as

Available Test Methods

All testing methods are defined in \Codeception\Email\TestsEmails.

haveEmails()

Checks if there are any emails in the inbox

haveNumberOfEmails($expected)

Checks that the amount of emails in the inbox is exactly $expected

dontHaveEmails()

Checks that there are no emails in the inbox

haveUnreadEmails()

Checks that there is at least one unread email

haveNumberOfUnreadEmails($expected)

Checks that the amount of emails in the unread inbox is exactly $expected

dontHaveUnreadEmails()

Checks that there are no unread emails in the inbox

seeInOpenedEmailBody($expected)

Validates that $expected can be found in the opened email body

seeInOpenedEmailSubject($expected)

Validates that $expected can be found in the opened email subject

dontSeeInOpenedEmailBody($expected)

Checks that $expected cannot be found in the opened email body

dontSeeInOpenedEmailSubject($expected)

Checks that $expected cannot be found in the opened email subject

seeInEmailBody($email, $expected)

Checks that the body of $email contains $expected

dontSeeInEmailBody($email, $expected)

Checks that the body of $email does not contain $expected

seeInEmailSubject($email, $expected)

Checks that the subject of $email contains $expected

dontSeeInEmailSubject($email, $expected)

Checks that the subject of $email does not contain $expected

seeInOpenedEmailSender($expected)

Checks if the sender of the opened email contains $expected

dontSeeInOpenedEmailSender($expected)

Checks if the sender of the opened email does not contain $expected

seeInEmailSender($email, $expected)

Checks if the sender of $email contains $expected

dontSeeInEmailSender($email, $expected)

Checks if the sender of $email does not contain $expected

seeInOpenedEmailReplyTo($expected)

Checks if the ReplyTo of the opened email contains $expected

dontSeeInOpenedEmailReplyTo($expected)

Checks if the ReplyTo of the opened email does not contain $expected

seeInEmailSender($email, $expected)

Checks if the ReplyTo of $email contains $expected

dontSeeInEmailReplyTo($email, $expected)

Checks if the ReplyTo of $email does not contain $expected

seeInOpenedEmailRecipients($expected)

Checks that the recipients of the opened email contain $expected

dontSeeInOpenedEmailRecipients($expected)

Checks that the recipients of the opened email do not contain $expected

seeInEmailRecipients($email, $expected)

Checks that the recipients of $email contain $expected

dontSeeInEmailRecipients($email, $expected)

Checks that the recipients of $email do not contain $expected

seeInOpenedEmailToField($expected)

Checks the the To field of the opened email contains $expected

dontSeeInOpenedEmailToField($expected)

Checks the the To field of the opened email does not contain $expected

seeInEmailToField($email, $expected)

Checks the the To field of $email contains $expected

dontSeeInEmailToField($email, $expected)

Checks the the To field of $email does not contain $expected

seeInOpenedEmailCCField($expected)

Checks that the CC field of the opened email contains $expected

dontSeeInOpenedEmailCCField($expected)

Checks that the CC field of the opened email does not contain $expected

seeInEmailCCField($email, $expected)

Checks that the CC field of $email contains $expected

dontSeeInEmailCCField($email, $expected)

Checks that the CC field of $email does not contain $expected

seeInOpenedEmailBCCField($expected)

Checks that the BCC field of the opened email contains $expected

Warning: it is possible for an email to have its BCC field empty, it doesn't mean that another instance of the same email doesn't exist.

dontSeeInOpenedEmailBCCField($expected)

Checks that the BCC field of the opened email does not contain $expected

Warning: it is possible for an email to have its BCC field empty, it doesn't mean that another instance of the same email doesn't exist.

seeInEmailBCCField($email, $expected)

Checks that the BCC field of $email contains $expected

Warning: it is possible for an email to have its BCC field empty, it doesn't mean that another instance of the same email doesn't exist.

dontSeeInEmailBCCField($email, $expected)

Checks that the BCC field of $email does not contain $expected

Warning: it is possible for an email to have its BCC field empty, it doesn't mean that another instance of the same email doesn't exist.

seeInOpenedEmailPriority($expected)

Checks that the priority of the opened email is $expected

dontSeeInOpenedEmailPriority($expected)

Checks that the priority of the opened email is not $expected

seeInEmailPriority($email, $expected)

Checks that the priority of $email is $expected

dontSeeInEmailPriority($email, $expected)

Checks that the priority of $email is not $expected

Developing For New Testing Services

A base trait defining the interface the test methods require is available in \Codeception\Email\EmailServiceProvider. All of these methods need to be overloaded in a new Service Provider. They are protected as they are only used by the testing layer, not by the user himself.

getCurrentInbox()

Returns the complete current inbox

getUnreadInbox()

Returns the inbox containing unread emails

getOpenedEmail($fetchNextUnread = FALSE)

Main method called by the tests, providing either the currently open email or the next unread one

getEmailBody($email)

Returns the body of an email

getEmailSubject($email)

Returns the subject of an email

getSender($email)

Returns the string containing the sender of the email

getEmailTo($email)

Returns the string containing the persons included in the To field

getEmailCC($email)

Returns the string containing the persons included in the CC field

getEmailBCC($email)

Returns the string containing the persons included in the BCC field

getEmailRecipients($email)

Returns the string containing all of the recipients, such as To, CC and if provided BCC

grabBodyFromEmail

Returns the email body as string

$email_body = $I->grabBodyFromEmail('text/html');
$doc = new DOMDocument();
$doc->loadHTML($email_body);
$login = $doc->getElementById('login')->textContent;
$password = $doc->getElementById('password')->textContent;

Fetch login & password from 'text/html' email MIME-part.

To Do

While this framework should be sufficient for most email testing scenarios, the remaining features need to be implemented

  • HTML and Plain Text content
  • Attachments
  • Priority

License

Copyright (c) 2015-2016 Eric Martel, http://github.com/ericmartel emartel@gmail.com

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

ericmartel/codeception-email 适用场景与选型建议

ericmartel/codeception-email 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 953.3k 次下载、GitHub Stars 达 10, 最近一次更新时间为 2015 年 12 月 30 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 ericmartel/codeception-email 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 ericmartel/codeception-email 我们能提供哪些服务?
定制开发 / 二次开发

基于 ericmartel/codeception-email 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 953.3k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 10
  • 点击次数: 17
  • 依赖项目数: 9
  • 推荐数: 0

GitHub 信息

  • Stars: 10
  • Watchers: 1
  • Forks: 5
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-12-30