jbzoo/phpunit

PHPUnit toolbox with short assert aliases and useful functions around testing

Maintainers

👁 smetdenis

Package info

github.com/JBZoo/PHPUnit

pkg:composer/jbzoo/phpunit

Statistics

Installs: 1 146 703

Dependents: 29

Suggesters: 0

Stars: 5

Open Issues: 0

7.2.0 2025-09-27 19:26 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT d1d80a945fdb6a40ec1099b9de94823dfb9bc05d

  • Denis Smetannikov <admin.woop@jbzoo.com>

debugtestingphpunitassertassertionaliasesjbzooshort-syntax


README

👁 CI
👁 Coverage Status
👁 Psalm Coverage
👁 Psalm Level
👁 CodeFactor
👁 Stable Version
👁 Total Downloads
👁 Dependents
👁 GitHub License

PHPUnit toolbox with short assertion aliases and useful testing utilities. This library provides a more concise and readable way to write tests by offering shorter function names for common PHPUnit assertions.

Features

  • Short assertion aliases - Use isTrue() instead of $this->assertTrue()
  • Extended assertions - Additional assertions for emails, dates, amounts, file contents
  • Environment detection - Detect if running under TeamCity, Travis, PhpStorm
  • Built-in utilities - Tools for test organization and debugging
  • PHP 8.2+ support - Modern PHP features and strict typing

Installation

composer require jbzoo/phpunit --dev

Quick Start

namespace JBZoo\PHPUnit;

/**
 * Class PackageTest
 * @package JBZoo\PHPUnit
 */
class PackageTest extends PHPUnit
{
 public function testSimple()
 {
 // Boolean
 isTrue(true);
 isFalse(false);

 // null
 isNull(null);

 // Check is variable empty
 isEmpty(0);
 isEmpty('');
 isEmpty(null);
 isEmpty('0');
 isEmpty(.0);
 isEmpty(array());

 // Equals
 is(1, true);
 is(array(1, 2, 3), array(1, 2, 3));
 isSame(array(1, 2, 3), array(1, 2, 3));

 // Array, Object etc
 isKey('test', array('test' => true));
 isNotKey('undef-kest', array('test' => true));

 isAttr('test', (object)array('test' => true));
 isNotAttr('undef-test', (object)array('test' => true));

 // Instance Of ...
 isClass(JBZoo\PHPUnit\PHPUnit::class, $this);

 // Count props
 isCount(0, array());
 isCount(1, array(1));
 isCount(2, array(1, 3));

 // regExp
 isLike('#t.st#i', 'TESTO');
 isNotLike('#teeest#i', 'TESTO');

 // Strings
 isContain('t', 'test');
 isNotContain('x', 'test');

 // Filesystem
 isFileEq(__FILE__, __FILE__);
 isFile(__FILE__);
 isDir(__DIR__);
 }

 public function testSkip()
 {
 skip('Some reason to skip this test');
 }

 public function testFail()
 {
 fail('Some reason to fail this test');
 }
}

Available Assertions

Basic Assertions

  • is($expected, $actual) - assertEquals
  • isNot($expected, $actual) - assertNotEquals
  • isSame($expected, $actual) - assertSame
  • isNotSame($expected, $actual) - assertNotSame
  • isTrue($value) - assertTrue
  • isFalse($value) - assertFalse
  • isNull($value) - assertNull
  • isNotNull($value) - assertNotNull
  • isEmpty($value) - assertEmpty
  • isNotEmpty($value) - assertNotEmpty

Arrays & Objects

  • isKey($key, $array) - assertArrayHasKey
  • isNotKey($key, $array) - assertArrayNotHasKey
  • isAttr($name, $object) - Check object attribute exists
  • isNotAttr($name, $object) - Check object attribute doesn't exist
  • isClass($expected, $actual) - assertInstanceOf
  • isCount($expected, $countable) - assertCount

Strings & RegExp

  • isLike($pattern, $value) - assertMatchesRegularExpression
  • isNotLike($pattern, $value) - assertDoesNotMatchRegularExpression
  • isContain($needle, $haystack) - String contains check
  • isNotContain($needle, $haystack) - String doesn't contain check

Files & Filesystem

  • isFile($path) - assertFileExists
  • isNotFile($path) - File doesn't exist
  • isDir($path) - Directory exists
  • isNotDir($path) - Directory doesn't exist
  • isFileEq($expected, $actual) - assertFileEquals
  • isFileContains($expected, $filepath) - File contains string
  • isFileNotContains($expected, $filepath) - File doesn't contain string

Extended Assertions

  • isEmail($email) - Valid email check
  • isNotEmail($email) - Invalid email check
  • isCurrentDate($date, $timeDiff) - Date is close to current time
  • isSameDate($expected, $actual, $format) - Date comparison
  • isAmount($expected, $actual, $allowableDiff) - Amount comparison with tolerance
  • isDiffBetweenDates($date1, $date2, $expectedDiff) - Time difference check

Test Control

  • skip($message) - markTestSkipped
  • fail($message) - fail test
  • incomplete($message) - markTestIncomplete
  • success($message) - Mark test as successful

Environment Detection

  • isWin() - Running on Windows
  • isTeamCity() - Running under TeamCity
  • isTravis() - Running under Travis CI
  • isPhpStorm() - Running in PhpStorm

Requirements

  • PHP 8.2 or higher
  • PHPUnit ^9.6.29
  • ext-filter, ext-mbstring

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

MIT