smartymoon/inertia-laravel-testing

https://github.com/inertiajs/inertia-laravel 的测试辅助工具

dev-master 2021-05-03 01:58 UTC

This package is auto-updated.

Last update: 2024-09-29 05:49:41 UTC


README

注意:一旦 inertiajs/inertia-laravel 中提供了任何官方测试辅助工具,本包将被弃用。包将仍然可用于安装,但从那时起将不再收到任何(安全)更新。

Latest Version Build Status Quality Score StyleCI Total Downloads

安装

您可以通过 composer 安装此包

composer require --dev claudiodekker/inertia-laravel-testing

用法

要测试,只需将以下任何方法链式连接到您的 TestResponse 响应即可。

Screenshot 2020-09-02 at 19 44 39

可用方法

此包提供的方法与 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 模型(或任何其他 ArrayableResponsable 类)进行断言

$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)。请参阅 许可文件 了解更多信息。