cfx / pspec
PSpec 是一个基于 RSpec let 的 Pest 插件,用于通过简单的 API 编写多场景测试。
1.0.1
2024-04-17 19:25 UTC
Requires
- php: ^8.1
- pestphp/pest: ^2.0.0
- pestphp/pest-plugin: ^2.0.0
Requires (Dev)
- pestphp/pest-dev-tools: ^2.0.0
This package is auto-updated.
Last update: 2024-09-17 22:44:50 UTC
README
PSpec 是一个基于 RSpec let 的 Pest 插件,用于通过简单的 API 编写多场景测试。
安装
composer require cfx/pspec --dev
简单用法
use function Cfx\PSpec\context; use function Cfx\PSpec\expectSubject; use function Cfx\PSpec\get; use function Cfx\PSpec\let; use function Cfx\PSpec\subject; subject(fn () => User::factory()->create(['is_admin' => get('is_admin')])); context('when is admin', function () { let('is_admin', fn() => true); it('returns true', function () { expectSubject()->is_admin->toBeTrue(); }); }); context('when is not admin', function () { let('is_admin', fn() => false); it('returns false', function () { expectSubject()->is_admin->toBeFalse(); }); });
高阶测试
use function Cfx\PSpec\context; use function Cfx\PSpec\get; use function Cfx\PSpec\getSubject; use function Cfx\PSpec\let; subject(fn () => get('variable')); context('when using high order testing', function () { let('variable', fn () => 2); it('can use high order testing') ->expect(getSubject(...)) ->toEqual(2); });