cfx/pspec
PSpec
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);
});
Related Packages
Version History
| Version | Released | PHP | License |
|---|---|---|---|
| v2.0.0 | ^8.3 | MIT | |
| 1.0.2 | ^8.2 | MIT | |
| 1.0.1 | ^8.1 | MIT | |
| 1.0.0 | ^8.1 | MIT |