cfx/pspec

PSpec 是一个基于 RSpec let 的 Pest 插件,用于通过简单的 API 编写多场景测试。

1.0.1 2024-04-17 19:25 UTC

This package is auto-updated.

Last update: 2024-09-17 22:44:50 UTC


README

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

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

更多示例