alibayat / 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-20 14:10:51 UTC
README
此包允许您测试Laravel事件是否已广播。这对于TDD和端到端测试非常有用。
此项目是从 jlndk/laravel-test-broadcaster
分支出来的。
安装
- 通过composer安装包。
composer require alibayat/laravel-test-broadcaster
- 将测试广播添加到
app/config/broadcasting.php
文件中的connections
数组。
'connections' => [ ... 'test' => [ 'driver' => 'test' ], ],
- 在
phpunit.xml
文件的php
元素中设置测试的默认广播器。
<php> ... <env name="BROADCAST_DRIVER" value="test"/> </php>
- 最后,将
AliBayat\TestBroadcaster\CanTestBroadcasting
特性添加到tests/TestCase.php
文件。
use AliBayat\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)。请参阅许可文件获取更多信息。