jlndk/laravel-test-broadcaster

用于测试事件广播的广播提供程序

v0.1 2020-04-09 18:18 UTC

This package is auto-updated.

Last update: 2024-09-10 06:04:07 UTC


README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

此包允许您测试 Laravel 事件是否已广播。这对于 TDD 和端到端测试非常有用。

安装

  1. 通过 composer 安装此包
composer require jlndk/laravel-test-broadcaster
  1. 将测试广播添加到 app/config/broadcasting.php 中的 connections 数组。
'connections' => [
    ...
    'test' => [
        'driver' => 'test'
    ],
],
  1. phpunit.xmlphp 元素中设置测试的默认广播器。
<php>
    ...
    <env name="BROADCAST_DRIVER" value="test"/>
</php>
  1. 最后,将 Jlndk\TestBroadcaster\CanTestBroadcasting trait 添加到 tests/TestCase.php
use Jlndk\TestBroadcaster\CanTestBroadcasting;
abstract class TestCase extends BaseTestCase
{
    use CanTestBroadcasting;
}

用法

此包将 assertEventBroadcasted 方法添加到您的测试中。

/**
 * @test
 */
public function it_can_assert_when_an_event_is_broadcasted()
{
    event(new TestEvent());
    $this->assertEventBroadcasted(TestEvent::class);
}

此外,您还可以测试事件广播了多少次

/**
 * @test
 */
public function it_can_assert_if_an_event_was_broadcasted_a_given_amount_of_times()
{
    event(new TestEvent());
    $this->assertEventBroadcasted(TestEvent::class, 1);

    event(new TestEvent());
    $this->assertEventBroadcasted(TestEvent::class, 2);
}
/**
 * @test
 */
public function it_can_assert_if_an_event_was_broadcasted_a_given_amount_of_times()
{
    event(new TestEvent());
    $this->assertEventBroadcasted(TestEvent::class, 1);

    event(new TestEvent());
    $this->assertEventBroadcasted(TestEvent::class, 2);
}

assertEventBroadcasted 方法还可以断言事件广播到的频道。它可以接受一个字符串(单个频道)或频道名称数组。

/**
 * @test
 */
public function it_can_assert_if_an_event_was_broadcasted_on_multiple_channels()
{
    event(new TestEvent());

    // 
    $this->assertEventBroadcasted(TestEvent::class, ['private-channel-name', 'private-another-channel-name']);

    try {
        $this->assertEventBroadcasted(TestEvent::class, [
            'private-channel-name',
            'somethingelse-fake-channel',
        ]);
        $this->fail("assertEventBroadcasted asserted that an event was broadcasted on given channels when it wasn't");
    } catch (ExpectationFailedException $e) {
    }
}

测试

composer test

更新日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

有关详细信息,请参阅 CONTRIBUTING

安全

如果您发现任何安全相关的问题,请通过电子邮件发送给 xxx,而不是使用问题跟踪器。

致谢

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件