shift31/glean

此包已被弃用且不再维护。未建议替代包。

从任何对象方法的输出中生成固定文件

1.0 2014-12-29 16:15 UTC

This package is not auto-updated.

Last update: 2020-01-24 15:58:49 UTC


README

Laravel 的固定文件生成器

此库提供了一项 Laravel Artisan 命令,可以从任何对象方法的输出生成固定文件。它利用 Laravel 的服务容器和 PHP 的反射功能来实例化类并调用具有指定参数的所需对象方法。数据可以保存为原始 PHP、YAML、JSON 或 XML。

使用案例

尽管有许多测试双库旨在为数据库播种目的而摄取固定文件(即反映模型类),但在复杂应用程序中,可能需要从其他类型的类(例如服务)中具有可重用的固定数据。 Glean 提供了一种轻松捕获任意/复杂数据结构的方法。此工具生成的固定文件旨在用于需要重用预期数据的任何单元测试场景(即存根)。

用法

  1. composer require shift31/glean
  2. Shift31\Glean\GleanServiceProvider 添加到您的 app/config/app.php 文件中的 'providers' 数组中。

帮助

从 Laravel 项目的根目录运行 php artisan help glean

示例

想象一个 Acme\Users\UsersService 类,它有一个 getUserRoles($userId) 方法,该方法返回特定用户的角色数组

php artisan glean -a user_roles 'Acme\Users\UsersService' getUserRoles 12345

默认情况下,这将生成一个名为 user_roles.php 的 PHP 文件,位于 app/storage/fixtures,其中包含从 UsersService::getUserRolesgleaned 的数据。

使用接口

Glean 使用 Laravel 的服务容器解析类,因此您可以为 className 参数指定一个接口。

在测试中

$expectedUserRoles = include(__DIR__ . '/../app/storage/fixtures/user_roles.php');

限制

方法参数只能是 PHP 原始值或 null。此问题的可能解决方案是扩展 GleanCommand 类并创建您自己的自定义 "gleaner"。

待办事项

  • 构建固定文件加载器
  • 使其无框架化?
  • 使编写自定义 gleaners 更容易?