ericfortmeyer/mock-extern-service

用于模拟邮件或UDP套接字等服务进行功能测试。TDD,PHPUnit

v0.2.2 2021-04-27 20:38 UTC

This package is auto-updated.

Last update: 2024-08-28 03:47:46 UTC


README

Build Status

用于模拟邮件或UDP套接字等服务进行功能测试。结果将被保存在文件中,以便你可以进行断言。

安装

composer require --dev "ericfortmeyer/mock-extern-service"

启动

首先,您必须启动此系统,您可以在启动文件 查看

\Fortmeyer\MockExternService\Service::boot();

然后,您必须使用PHP解释器选项 -d sendmail_path=mock-service/smtp-mock-server.php 启动PHPUnit。此脚本将模拟邮件系统。

断言

模拟邮件系统

使用 Fortmeyer\MockExternService\Result::MailInbox() 获取邮件内容。

PHP ini "sendmail_path" 必须设置为 smtp-mock-server.php 脚本。该脚本将获取邮件并保存。此配置只能在启动脚本之前设置。如php.ini或作为命令选项(php -d)。

示例
public function testMockMailSystem()
{
    $msg = "Content " . time();
    mail('root@@127.0.0.1', "subject", $msg);
    
    $this->assertContains($msg, MockExternService\Result::MailInbox());
}

模拟UDP套接字

使用 Fortmeyer\MockExternService\Result::UdpSockArrived() 获取2048位的内容。套接字将监听

示例
public function testGrayLogServer()
{
    $data = "graylog_data " . time();
    $socket = fsockopen('udp://127.0.0.1:13010');
    fputs($socket, $data);

    $this->assertEquals($data, MockExternService\Result::UdpSockArrived());
}

示例

PHPUnitTest 命令: php -d sendmail_path=mock-service/smtp-mock-server.php ./vendor/bin/phpunit

Chanelog

  • v0.1 首次想法