innmind / black-box
测试库
5.7.0
2024-07-21 16:09 UTC
Requires
- php: ~8.2
- innmind/json: ^1.1
- phpunit/php-code-coverage: ^10.1
- phpunit/php-timer: ^6.0
- phpunit/phpunit: ~10.0
- symfony/var-dumper: ~6.0|~7.0
Requires (Dev)
- innmind/coding-standard: ~2.0
- ramsey/uuid: ^4.1
- vimeo/psalm: ~5.6
- dev-develop
- 5.7.0
- 5.6.3
- 5.6.2
- 5.6.1
- 5.6.0
- 5.5.4
- 5.5.3
- 5.5.2
- 5.5.1
- 5.5.0
- 5.4.0
- 5.3.0
- 5.2.0
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.0
- 4.18.1
- 4.18.0
- 4.17.0
- 4.16.0
- 4.15.1
- 4.15.0
- 4.14.0
- 4.13.0
- 4.12.0
- 4.11.0
- 4.10.1
- 4.10.0
- 4.9.0
- 4.8.0
- 4.7.1
- 4.7.0
- 4.6.0
- 4.5.0
- 4.4.1
- 4.4.0
- 4.3.1
- 4.3.0
- 4.2.5
- 4.2.4
- 4.2.3
- 4.2.2
- 4.2.1
- 4.2.0
- 4.1.1
- 4.1.0
- 4.0.0
- 3.0.0
- 2.9.0
- 2.8.1
- 2.8.0
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.0
- 1.0.0
- dev-master
- dev-test-runner
This package is auto-updated.
Last update: 2024-09-21 16:38:39 UTC
README
BlackBox 是一个基于属性的测试框架和测试执行器。
基于属性的测试是一种通过使用给定类型的多个值来测试代码片段(即属性)是否总是以相同方式行为(也称为属性)的方法。
对这个方法的常见介绍是具有 3 个属性的 add
函数
- 它是交换律的
- 它是结合律的
- 它是一个恒等函数
要使用 BlackBox 证明这一点,你可以这样做
use Innmind\BlackBox\{ Application, Set, Runner\Assert, }; Application::new([]) ->tryToProve(static function() { yield proof( 'add is commutative', given( Set\Integers::any(), Set\Integers::any(), ), static fn(Assert $assert, int $a, int $b) => $assert->same( add($a, $b), add($b, $a), ), ); yield proof( 'add is associative', given( Set\Integers::any(), Set\Integers::any(), Set\Integers::any(), ), static fn(Assert $assert, int $a, int $b, int $c) => $assert->same( add(add($a, $b), $c), add($a, add($b, $c)), ), ); yield proof( 'add is an identity function', given(Set\Integers::any()), static fn(Assert $assert, int $a) => $assert->same( $a, add($a, 0), ), ); }) ->exit();
默认情况下,BlackBox将为每个证明生成 100 个场景。
注意 BlackBox 使用术语 证明 来强调你测试的是行为而不是特定场景,但这 NOT 形式证明
安装
composer require --dev innmind/black-box
文档
完整文档可以在这里找到。