alphametric / mail-assertions
此包已被弃用,不再维护。未建议替代包。
一个将常用邮件断言直接提供给Laravel测试用例的包。
v2.0
2019-05-01 21:12 UTC
Requires
- php: ^7.0
Requires (Dev)
- orchestra/testbench: ^3.6
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2020-02-17 10:07:55 UTC
README
此包向您的Laravel TestCase中的$this添加了一组基于电子邮件的断言。通过使用此包,您不再需要导入Mail外观并配置它使用假实现,也不需要导入您的可邮寄文件/通知。相反,您可以直接链接您需要的任何断言,无需任何设置。
安装
您可以通过composer安装此包
composer require alphametric/mail-assertions
安装包后,您需要将MailAssertions特质添加到Laravel的TestCase类中
namespace Tests; use Alphametric\Assertions\MailAssertions; use Illuminate\Foundation\Testing\TestCase as BaseTestCase; abstract class TestCase extends BaseTestCase { use CreatesApplication, MailAssertions; }
配置
如果您还没有这样做,您应该配置您的应用程序的phpunit.xml文件以使用邮件日志驱动程序
<php> <env name="MAIL_DRIVER" value="log"/> </php>
其他邮件驱动可能可以正常工作,但不受支持,并且未经过测试。
用法
正如您所期望的,您可以直接调用包含的断言
$this -> assertEmailSent();
由于所有断言都返回类实例,因此您还可以链接多个断言
$this -> assertEmailSent() -> assertEmailFrom("john@example.com");
库
以下断言可用于使用
名称 | 描述 |
---|---|
assertEmailAttachment | 验证电子邮件是否包含附件 |
assertEmailAttachmentCount | 验证电子邮件是否包含指定数量的附件 |
assertEmailAttachmentExtension | 验证电子邮件是否包含具有给定文件扩展名的附件 |
assertEmailAttachmentFilename | 验证电子邮件是否包含具有给定文件名的附件 |
assertEmailAttachmentSize | 验证电子邮件是否包含具有给定文件大小的附件(可选使用多字节编码) |
assertEmailBcc | 验证电子邮件的BCC字段是否与给定字符串匹配 |
assertEmailBodyContains | 验证电子邮件正文是否包含给定字符串 |
assertEmailBodyDoesNotContain | 验证电子邮件正文是否不包含给定字符串 |
assertEmailBodyEquals | 验证电子邮件正文是否与给定字符串匹配 |
assertEmailCc | 验证电子邮件的CC字段是否与给定字符串匹配 |
assertEmailContentType | 验证电子邮件是否使用指定的内容类型 |
assertEmailCount | 验证发送的电子邮件数量是否与给定整数匹配 |
assertEmailFrom | 验证电子邮件的From字段是否与给定字符串匹配 |
assertEmailPriority | 验证电子邮件是否有给定优先级 |
assertEmailNotSent | 验证是否未发送电子邮件 |
assertEmailReplyTo | 验证电子邮件的ReplyTo字段是否与给定字符串匹配 |
assertEmailSent | 验证是否已发送电子邮件 |
assertEmailSubjectContains | 验证电子邮件的主题是否包含给定字符串 |
assertEmailSubjectDoesNotContain | 验证电子邮件的主题是否不包含给定字符串 |
assertEmailSubjectEquals | 验证电子邮件的主题是否与给定字符串匹配 |
assertEmailTo | 验证电子邮件的To字段是否与给定字符串匹配 |
清空栈
由于测试可能导致发送多封邮件,该软件包使用栈(实际上只是一个数组)的概念来存储所有待发送的邮件。
有时,在执行更多代码(这将导致发送新邮件/需要测试新邮件)之前,可能需要执行一个或多个断言,然后清空栈。
对于这些场景,您可以调用 flushEmail()
方法。
特定邮件
有时,可能需要对栈中的特定邮件执行一个或多个断言。您可以通过调用 getEmailByIndex()
方法,并将结果作为任何断言方法的第二个参数来实现这一点。
$this -> assertEmailFrom("john@example.com", $this -> getEmailByIndex(3));
如果不提供第二个参数,则断言将作用于栈中最新的邮件。
测试
您可以通过在根包目录中使用以下命令来运行测试套件
composer test
变更日志
V1.0 - 初次发布。
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。