jlndk / laravel-test-broadcaster
用于测试事件广播的广播提供程序
v0.1
2020-04-09 18:18 UTC
Requires
- php: ^7.4
- illuminate/support: ^7.5
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- orchestra/testbench: ^5.0
- phpunit/phpunit: ^9.0
- symfony/var-dumper: ^5.0
This package is auto-updated.
Last update: 2024-09-10 06:04:07 UTC
README
此包允许您测试 Laravel 事件是否已广播。这对于 TDD 和端到端测试非常有用。
安装
- 通过 composer 安装此包
composer require jlndk/laravel-test-broadcaster
- 将测试广播添加到
app/config/broadcasting.php
中的connections
数组。
'connections' => [ ... 'test' => [ 'driver' => 'test' ], ],
- 在
phpunit.xml
的php
元素中设置测试的默认广播器。
<php> ... <env name="BROADCAST_DRIVER" value="test"/> </php>
- 最后,将
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)。有关更多信息,请参阅 许可证文件。