GitPedia

Verify

BDD Assertions for PHPUnit and Codeception

From Codeception·Updated February 22, 2026·View on GitHub·

**Verify** is a BDD Assertions for PHPUnit and Codeception The project is written primarily in PHP, distributed under the MIT License license, first published in 2013. Key topics include: assertions, bdd, bdd-assertions, codeception, php.

Latest release: 3.4.0
February 24, 2026View Changelog →

Verify

BDD Assertions for PHPUnit or Codeception

Latest Stable Version
Total Downloads
Build Status
License
StandWithUkraine

This is very tiny wrapper for PHPUnit assertions, that are aimed to make tests a bit more readable.
With BDD assertions influenced by Chai, Jasmine, and RSpec your assertions would be a bit closer to natural language.

⚠️ This is the Verify 2.0 documentation, to see v1.x docs click here.

Installation

Requires PHP 7.4 or higher

composer require codeception/verify --dev

:arrow_up: Upgrade from 1.x by following the upgrade guide.

Usage

Use in any test verify function instead of $this->assert* methods:

php
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 !

:page_facing_up: See Verifiers full list here.

Alternative Syntax

If you follow TDD/BDD you'd rather use expect instead of verify:

php
expect($user->getNumPosts()) ->notToBeNull() ->toBeInt() ->toEqual(5, 'user have 5 posts');

:page_facing_up: See Expectations full list here.

Or verify_that which is just an alias function:

php
verify_that($user->getRate())->equals(7, 'first user rate is 7');

Extending

In order to add more assertions you can extend the abstract class Verify:

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

And use it!

php
$myVerify = new MyVerify; $myVerify->success('it works!'); $myVerify::Mixed('this also')->notEquals('works');

License

Verify is open-sourced software licensed under the MIT License.
© Codeception PHP Testing Framework

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from Codeception/Verify via the GitHub API.Last fetched: 6/17/2026