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);
});
});
});
入门
- 安装PSpec:
composer require --dev codingpaws/pspec
- 在项目根目录下创建一个
spec
目录 - 例如,为项目中的一个类
Counter
,创建一个文件spec/Counter.spec.php
- 编写一些测试,例如示例
- 运行PSpec:
vendor/bin/pspec
为什么?
PSpec用自然语言模拟您的应用程序。在PHP测试的事实标准PHPUnit中,测试文件包含一个顺序测试列表。如果两个测试在PHPUnit中相关,例如一个认证请求和一个未认证请求,则很难理解。
在PSpec中,测试嵌套在现实世界的条件下,例如登录或网络错误发生时。您使用describe
块来组织测试。