bradietilley/pest-stories
Composer 安装命令:
composer require bradietilley/pest-stories
包简介
A tool to assist in creating complex permutations of test case scenarios in Pest PHP (for Laravel)
README 文档
README
A clean approach for writing large test suites.
Introduction
User Stories are short, simple descriptions of a feature or functionality of a software application, typically written from the perspective of an end user.
Pest Stories is a PHP package that extends the PestPHP testing framework, allowing developers to write user stories in a clear and reusable way, making it easier to maintain and test their software applications. The idea is your tests should be written in a human readable way that reflects a user story.
Installation
composer require bradietilley/pest-stories --dev
To add Stories to your test suites, you must add the following trait via Pest's uses() helper:
uses(BradieTilley\Stories\Concerns\Stories::class);
Refer to Pest's documentation on how to use the uses() helper.
Documentation
Read the docs.
Example
tests/Pest.php:
action('as_admin', function () { actingAs(User::factory()->admin()->create()); }); action('as_customer', function () { actingAs(User::factory()->customer()->create()); }); action('create_product', function (array $product) { return test()->postJson(route('products.store'), array_replace([ 'title' => 'Default', 'sku' => 'default', 'price' => 99.99, ], $product)) }, 'response'); action('response:ok', function (TestResponse $response) { $response->assertOk(); }); action('response:invalid', function (TestResponse $response) { $response->assertUnprocessable(); });
tests/Feature/Api/Products/CreateTest.php:
test('can create a product via the api') ->action('as_admin') ->assertDatabaseMissing('products', [ 'title' => 'Default', ]) ->action('create_product') ->assertDatabaseHas('products', [ 'title' => 'Default', ]); test('cannot create a product via the api as a customer') ->action('as_customer') ->assertDatabaseMissing('products', [ 'title' => 'Default', ]) ->action('create_product') ->assertDatabaseMissing('products', [ 'title' => 'Default', ]); test('can create a product via the api with a custom title') ->action('as_admin') ->assertDatabaseMissing('products', [ 'title' => 'Custom Product' ]) ->action('create_product', [ 'product' => [ 'title' => 'Custom Product', ], ]) ->assertDatabaseHas('products', [ 'title' => 'Custom Product' ]); test('can create a product via the api with a custom price') ->action('as_admin') ->assertDatabaseMissing('products', [ 'price' => 12345.67 ]) ->action('create_product', [ 'product' => [ 'price' => 12345.67, ], ]) ->assertDatabaseHas('products', [ 'price' => 12345.67 ]);
Of course this just touches on the possible ways of customising Pest Stories to make it your own.
Author
bradietilley/pest-stories 适用场景与选型建议
bradietilley/pest-stories 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 14 次下载、GitHub Stars 达 7, 最近一次更新时间为 2023 年 04 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 bradietilley/pest-stories 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 bradietilley/pest-stories 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 14
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 7
- 点击次数: 23
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-04-04