vitorehugoro1/laravel-test-broadcaster

测试事件广播的广播提供者

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

This package is auto-updated.

Last update: 2024-09-23 10:38:23 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. 最后,将VitorHugoRo\TestBroadcaster\CanTestBroadcasting特质添加到tests/TestCase.php
use VitorHugoRo\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

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

贡献

请参阅贡献指南以获取详细信息。

安全性

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

致谢

许可

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