dmoen/mailtrap-test-helper

基于PHPUnit的邮件提交测试助手库,通过Mailtrap进行测试

v1.2.0 2017-10-06 20:07 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:57:57 UTC


README

基于PHPUnit的邮件提交测试助手库,通过Mailtrap进行测试。

安装

此包可以通过Composer安装

composer require dmoen/mailtrap-test-helper --dev

用法

使用api key和收件箱id创建MailTrapInbox实例

$inbox = new MailTrapInbox('api_key', 'inbox_id');  

示例使用PHPUnit测试用例。在每个测试之前,应该清理收件箱

private $inbox;

public function setUp()
{
    parent::setUp();

    $this->inbox = new MailTrapInbox('api_key', 'inbox_id'));
    $this->inbox->deleteAllMessages();
}

简单的收件箱测试

测试收件箱是否有任何消息

$inbox->assertHasMails();  

测试收件箱是否有来自特定地址的消息

$inbox->assertHasMailFrom("sender@example.com");

带有名称

$inbox->assertHasMailFrom("sender@example.com", "Sender Sendersson");

测试收件箱是否有发送到特定地址的消息

$inbox->assertHasMailFor("reciever@example.com");

带有名称

$inbox->assertHasMailFor("reciever@example.com", "Receiver Receiversson");

测试收件箱是否有特定主题的消息

$inbox->assertHasMailWithSubject('Lorem subject');

测试收件箱是否有特定正文的消息

$inbox->assertHasMailWithHtmlContent('<b>Lorem ipsum sit amet</b>');
$inbox->assertHasMailWithTextContent('Lorem ipsum sit amet');

针对特定电子邮件的更高级的测试

检索收件箱中的特定消息

$inbox->getLastMessage()
$inbox->getFirstMessage()

或者如果你知道收件箱中的特定索引

$message = $inbox->getMessage(2);

你也可以使用条件搜索收件箱中的特定唯一消息

$message = $inbox->findUnique(function($message){
    return $message->to_email == "receiver@example.com";
});

或者通过条件检索所有消息的数组

$messages = $inbox->fetchAllMessages();
$messages = $inbox->findMessages(function($message){
    return $message->to_email == "receiver@example.com";
});

传递给闭包的消息实例具有从Mailtrap API检索的所有属性:http://docs.mailtrap.apiary.io/#reference/message/apiv1inboxesinboxidmessagesid/get

然后可以使用一系列测试对消息进行测试

$message->assertIsFrom("me@railsware.com", "Private Person")
    ->assertIsFor("test@railsware.com", "A Test User")
    ->assertHasSubject("SMTP e-mail test")
    ->assertHasTextContent("This is a test e-mail message")
    ->assertHasHtmlContent("<b>Lorem ipsum sit amet.</b>");