smartymoon / inertia-laravel-testing
https://github.com/inertiajs/inertia-laravel 的测试辅助工具
dev-master
2021-05-03 01:58 UTC
Requires
- php: ^7.2
- inertiajs/inertia-laravel: ^v0.4
- laravel/framework: ^6.0|^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ^4.0|^5.0|^6.0
- phpunit/phpunit: ^8.0|^9.0
This package is auto-updated.
Last update: 2024-09-29 05:49:41 UTC
README
注意:一旦 inertiajs/inertia-laravel 中提供了任何官方测试辅助工具,本包将被弃用。包将仍然可用于安装,但从那时起将不再收到任何(安全)更新。
安装
您可以通过 composer 安装此包
composer require --dev claudiodekker/inertia-laravel-testing
用法
要测试,只需将以下任何方法链式连接到您的 TestResponse
响应即可。
可用方法
此包提供的方法与 Laravel 本身提供的方法密切相关
断言给定页面是否是 Inertia 渲染的视图
$response->assertInertia(); // or, also check whether the page is a specific component $response->assertInertia('example'); // or, also check whether all of the given props match $response->assertInertia('example', [ 'foo' => 'bar' ]);
返回页面的所有可用 Inertia 属性,或仅检索特定的一个
$response->inertiaProps(); // Retrieve a specific (nested) prop. Returns `null` if the prop doesn't exist. $response->inertiaProps('nested.prop');
断言 Inertia 渲染的视图是否设置了特定属性
$response->assertInertiaHas('key'); // or, against deeply nested values $response->assertInertiaHas('deeply.nested.key');
除了检查属性是否设置外,同一方法还可以用于断言值是否匹配
$response->assertInertiaHas('key', 'matches-this-value'); // or, for deeply nested values $response->assertInertiaHas('deeply.nested.key', 'also-match-against-this-value');
也可以直接对 Laravel 模型(或任何其他 Arrayable
或 Responsable
类)进行断言
$user = UserFactory::new()->create(['name' => 'John Doe']); // ... (Make HTTP request etc.) $response->assertInertiaHas('user', $user); $response->assertInertiaHas('deeply.nested.user', $user);
也可以对闭包进行断言
$response->assertInertiaHas('foo', function ($value) { return $value === 'bar'; }); // or, again, for deeply nested values $response->assertInertiaHas('deeply.nested.foo', function ($value) { return $value === 'bar'; });
接下来,您还可以检查一组属性。它将使用上述 assertInertiaHas
方法简单地遍历它们
$response->assertInertiaHasAll([ 'foo', 'bar.baz', 'another.nested.key' => 'example-value' ]);
最后,您可以断言某个属性没有被设置
$response->assertInertiaMissing('key'); // or, for deeply nested values $response->assertInertiaMissing('deeply.nested.key');
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 claudio@ubient.net 联系,而不是使用问题跟踪器。
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。