Skip to content

PSpec is a Pest plugin for composing multi scenarios tests with a simple API, based on RSpec let.

License

Notifications You must be signed in to change notification settings

coderfoxbrasil/cfx-pspec

Repository files navigation

PSpec

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

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);
});

more examples

About

PSpec is a Pest plugin for composing multi scenarios tests with a simple API, based on RSpec let.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages