cfx / pspec
PSpec is a Pest plugin for composing multi scenarios tests with a simple API, based on RSpec let
Fund package maintenance!
nunomaduro
Patreon
www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L
Requires
- php: ^8.2
- pestphp/pest: ^3.5.0
- pestphp/pest-plugin: ^3.0.0
Requires (Dev)
- pestphp/pest-dev-tools: ^3.0.0
This package is auto-updated.
Last update: 2024-12-14 19:15:32 UTC
README
PSpec is a Pest plugin for composing multi scenarios tests with a simple API, based on RSpec let.
Important
This plugin requires pest >= 3.5.0
Install
composer require cfx/pspec --dev
Simple usage
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(); }); });
Higher order testing
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); });