codingpaws/pspec

此包已被废弃,不再维护。未建议替代包。

一个受RSpec和jest影响的现代行为驱动测试框架。

v1.0 2022-07-20 16:37 UTC

This package is auto-updated.

Last update: 2024-01-31 00:39:40 UTC


README

PSpec是一个受RSpec和jest启发的PHP测试框架。

该项目是实验性的,仍需要大量工作。

示例

// src/Counter.php
class Counter {
  public int $value = 0;

  function increment() {
    $this->value++;
  }
}

// spec/Counter.spec.php
describe(Counter::class, function () {
  subject(fn () => new Counter);

  let('base_value', 10);

  before(function () {
    subject()->value = $this->base_value;
  });

  describe('#increment', function () {
    it('increments by 1', function () {
      expect(subject()->value)->toBe($this->base_value);

      subject()->increment();

      expect(subject()->value)->toBe($this->base_value + 1);
    });
  });
});

入门

  1. 安装PSpec: composer require --dev codingpaws/pspec
  2. 在项目根目录下创建一个spec目录
  3. 例如,为项目中的一个类Counter,创建一个文件spec/Counter.spec.php
  4. 编写一些测试,例如示例
  5. 运行PSpec: vendor/bin/pspec

为什么?

PSpec用自然语言模拟您的应用程序。在PHP测试的事实标准PHPUnit中,测试文件包含一个顺序测试列表。如果两个测试在PHPUnit中相关,例如一个认证请求和一个未认证请求,则很难理解。

在PSpec中,测试嵌套在现实世界的条件下,例如登录或网络错误发生时。您使用describe块来组织测试。

进一步阅读