廖泽华 a37f2bbff5 init code | 4 년 전 | |
---|---|---|
.. | ||
src | 4 년 전 | |
tests | 4 년 전 | |
.gitignore | 4 년 전 | |
.travis.yml | 4 년 전 | |
LICENSE | 4 년 전 | |
README.md | 4 년 전 | |
RoboFile.php | 4 년 전 | |
VERSION | 4 년 전 | |
composer.json | 4 년 전 | |
composer.lock | 4 년 전 |
BDD Assertions for PHPUnit and Codeception
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.
$user = User::find(1);
// equal
verify($user->getName())->equals('davert');
verify("user have 5 posts", $user->getNumPosts())->equals(5);
verify($user->getNumPosts())->notEquals(3);
// contains
verify('first user is admin', $user->getRoles())->contains('admin');
verify("first user is not banned", $user->getRoles())->notContains('banned');
// greater / less
$rate = $user->getRate();
verify('first user rate is 7', $rate)->equals(7);
verify($rate)->greaterThan(5);
verify($rate)->lessThan(10);
verify($rate)->lessOrEquals(7);
verify($rate)->lessOrEquals(8);
verify($rate)->greaterOrEquals(7);
verify($rate)->greaterOrEquals(5);
// true / false / null
verify($user->isAdmin())->true();
verify($user->isBanned())->false();
verify($user->invitedBy)->null();
verify($user->getPosts())->notNull();
// empty
verify($user->getComments())->isEmpty();
verify($user->getRoles())->notEmpty();
Shorthands for testing truth/fallacy:
verify_that($user->isActivated());
verify_not($user->isBanned());
These two functions don't check for strict true/false matching, rather empty
function is used.
verify_that
checks that result is not empty value, verify_not
does the opposite.
If you follow TDD/BDD you'd rather use expect
instead of verify
. Which are just an alias functions:
expect("user have 5 posts", $user->getNumPosts())->equals(5);
expect_that($user->isActive());
expect_not($user->isBanned());
Install composer in a common location or in your project:
curl -s http://getcomposer.org/installer | php
Create the composer.json
file as follows:
"require-dev": {
"codeception/verify": "*"
}
Run the composer installer:
php composer.phar install
Use in any test verify
function instead of $this->assert*
methods.
Codeception\Verify
class can be extended with custom assertions. You write your own verify
function that would instantiate your extended version of Verify class.
Verify is open-sourced software licensed under the MIT License. © Codeception PHP Testing Framework