genl/laravel-broadcast-testing
用于测试事件广播的广播提供者
1.0.3
2020-12-04 21:28 UTC
Requires
- laravel/framework: >=6.0@dev
Requires (Dev)
- orchestra/testbench: ^4.10||^5.0||^6.0
README
此包允许您测试Laravel事件是否已广播。这对于TDD和端到端测试非常有用。
安装
- 使用composer安装此包
composer require GENL/laravel-broadcast-testing
- 将测试广播器添加到
app/config/broadcasting.php
中的connections
数组中。
'connections' => [ ... 'test' => [ 'driver' => 'test' ], ],
- 在
phpunit.xml
的php
元素中设置测试的默认广播器。
<php> ... <env name="BROADCAST_DRIVER" value="test"/> </php>
- 最后,将
Genl\TestBroadcaster\CanTestBroadcasting
特质添加到tests/TestCase.php
中。
use Genl\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->assertEventWasBroadcast(TestEvent::class); }
此外,您还可以测试事件广播的次数
/** * @test */ public function it_can_assert_if_an_event_was_broadcasted_a_given_amount_of_times() { event(new TestEvent()); $this->assertEventWasBroadcast(TestEvent::class, 1); event(new TestEvent()); $this->assertEventWasBroadcast(TestEvent::class, 2); }
/** * @test */ public function it_can_assert_if_an_event_was_broadcasted_a_given_amount_of_times() { event(new TestEvent()); $this->assertEventWasBroadcast(TestEvent::class, 1); event(new TestEvent()); $this->assertEventWasBroadcast(TestEvent::class, 2); }
assertEventWasBroadcast
方法还可以断言事件被广播到哪些频道。它可以接受一个字符串(单个频道)或频道名称数组。
/** * @test */ public function it_can_assert_if_an_event_was_broadcasted_on_multiple_channels() { event(new TestEvent()); // $this->assertEventWasBroadcast(TestEvent::class, ['private-channel-name', 'private-another-channel-name']); try { $this->assertEventWasBroadcast(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)。有关更多信息,请参阅许可证文件。