codeception / verify
PHPUnit 的 BDD 断言库
3.2.0
2024-03-28 09:57 UTC
Requires
- php: ^7.4 || ^8.0
- ext-dom: *
- phpunit/phpunit: ^9.6.11 || ^10.0 || ^11.0
README
PHPUnit 或 Codeception 的 BDD 断言
这是一个非常小巧的 PHPUnit 断言包装器,旨在使测试更加易于阅读。受 BDD 断言(受 BDD 影响,由 Chai、Jasmine 和 RSpec 支持)的影响,您的断言将更加接近自然语言。
⚠️ 这是 Verify 2.0 文档,要查看 v1.x 文档,请点击 这里。
安装
需要 PHP 7.4 或更高版本
composer require codeception/verify --dev
⬆️ 按照升级指南升级 1.x 版本。
用法
在任何测试中使用 verify
函数代替 $this->assert*
方法
use Codeception\Verify\Verify; $user = User::find(1); // equals verify($user->getName())->equals('davert'); verify($user->getNumPosts()) ->equals(5, 'user have 5 posts') ->notEquals(3); // contains Verify::Array($user->getRoles()) ->contains('admin', 'first user is admin') ->notContains('banned', 'first user is not banned'); // greater / less verify($user->getRate()) ->greaterThan(5) ->lessThan(10) ->equals(7, 'first user rate is 7'); // true / false / null verify($user->isAdmin())->true(); verify($user->isBanned())->false(); verify($user->invitedBy)->null(); verify($user->getPosts())->notNull(); // empty verify($user->getComments())->empty(); verify($user->getRoles())->notEmpty(); // throws Verify::Callable($callback) ->throws() ->throws(Exception::class) ->throws(Exception::class, 'exception message') ->throws(new Exception()) ->throws(new Exception('message')); // does not throw Verify::Callable($callback) ->doesNotThrow() ->throws(Exception::class) ->doesNotThrow(new Exception()); // and many more !
📄 查看验证器完整列表 这里。
替代语法
如果您遵循 TDD/BDD,则更愿意使用 expect
而不是 verify
expect($user->getNumPosts()) ->notToBeNull() ->toBeInt() ->toEqual(5, 'user have 5 posts');
📄 查看期望完整列表 这里。
或者 verify_that
,这是一个别名函数
verify_that($user->getRate())->equals(7, 'first user rate is 7');
扩展
为了添加更多断言,您可以通过扩展抽象类 Verify
来实现
use Codeception\Verify\Verify; use PHPUnit\Framework\Assert; class MyVerify extends Verify { //you can type $actual to only receive a specific data type public function __construct($actual = null) { parent::__construct($actual); } public function success(string $message = '') { Assert::assertTrue(true, $message); } }
并使用它!
$myVerify = new MyVerify; $myVerify->success('it works!'); $myVerify::Mixed('this also')->notEquals('works');
许可证
Verify 是开源软件,许可协议为 MIT 许可。© Codeception PHP 测试框架