canvural/laravel-e2e-routes

提供一组路由,供您在E2E测试中使用。

v1.0.0 2020-02-11 16:27 UTC

This package is auto-updated.

Last update: 2024-09-19 01:09:03 UTC


README

Latest Version on Packagist Run tests Total Downloads

此包提供了一套规则,帮助您在运行E2E测试时使用Eloquent模型工厂管理数据库状态。

安装

您可以通过composer安装此包

composer require --dev canvural/laravel-e2e-routes

如果您想自定义一些选项,可以使用以下命令发布配置文件

php artisan vendor:publish --provider="Vural\E2ERoutes\E2ERoutesServiceProvider"

这是发布的配置文件内容。在这里,您可以自定义要添加到所有提供路由中的路由前缀、路由名称以及所有模型所在的命名空间。

<?php

return [
    'prefix' => 'e2e',
    'name' => 'e2e-routes',
    'modelNamespace' => 'App\\',
];

使用方法

由于明显的原因,此包不暴露在生产环境中的路由。在其他环境中,您可以使用这些路由。

重置数据库(GET e2e/reset

您可以使用http://localhost/e2e/reset路由来重置数据库。底层,此路由调用migrate:refresh Artisan命令。如果您想在迁移后对数据库进行seed,可以在路由上附加seed查询字符串。例如:http://localhost/e2e/reset?seed

创建模型(POST e2e/{modelName}

此包使用您的Eloquent模型工厂来创建数据。

因此,例如,如果您有一个名为User的模型和相关的UserFactory,您可以通过向http://localhost/e2e/user端点发送POST请求来在数据库中创建一个User。此外,新创建的模型也将作为端点的响应返回。

您可以将上述示例中的user替换为您想要的任何模型。如果找不到给定的模型,则返回404响应。如果模型存在但不存在该模型的工厂,则返回404响应。

覆盖属性

类似于factory方法,此包还提供了覆盖模型属性的能力。只需像这样向您的请求添加一个正文

[
    'attributes' => [ 'name' => 'John Doe' ]
]

这将覆盖name属性。

创建多个模型

您可以使用以下方式指定要创建的模型数量

[
    'times' => 3
]

这将返回包含3个模型的数组。

使用状态

如果您为工厂定义了一些状态,您可以在请求时使用它们。

[
    'states' => ['withAddress']
]

这将使用withAddress状态创建您的模型。如果给定的状态不是端点,则返回404响应。

全部结合

[
    'attributes' => [
        'name' => 'John Doe',
    ],
    'states' => ['withAddress'],
    'times' => 2
]

您也可以像这样结合选项。

测试

composer test

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全

如果您发现任何与安全相关的问题,请通过电子邮件can.vural@aequitas-group.pl联系,而不是使用问题跟踪器。

鸣谢

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件