/phpower

Implement assertion like Power Assert in PHP.

Primary LanguagePHPMIT LicenseMIT

phpower

Latest Stable Version Latest Unstable Version License

Implement assertion like Power Assert in PHP.

Install

composer require --dev phpunit/phpunit ngyuki/phpower:dev-master

Example

Write test code with assert.

<?php
namespace Test;

use PHPUnit\Framework\TestCase;

class SomeTest extends TestCase
{
    public function test_01()
    {
        $a = 1;
        $b = 2;
        $c = 3;
        assert(($a + ($b + 3)) === ($c * 3));
    }

    public function test_02()
    {
        $s = "x\ny\nz";
        assert("a\nb\nc" === strrev($s));
    }

    public function test_03()
    {
        $a = [1,2,3];
        $b = [7,8,9];
        assert($a == array_reverse($b));
    }

    public function test_ok()
    {
        $a = [1,2,3];
        $b = [3,2,1];
        assert($a == array_reverse($b));
    }
    public function test_04()
    {
        $a = [
            'name' => 'alice',
            'uid' => 1000,
            'gid' => 1000,
        ];
        assert($a == [
            'name' => 'bob',
            'uid' => 2000,
            'gid' => 2000,
        ]);
    }
}

Run the test.

vendor/bin/phpunit tests/example/

The following result is displayed.

PHPUnit 8.5.2 by Sebastian Bergmann and contributors.

Runtime:       PHP 7.4.2
Configuration: /path/to/phpower/phpunit.xml.dist

FFF.F                                                               5 / 5 (100%)

Time: 261 ms, Memory: 4.00 MB

There were 4 failures:

1) Test\SomeTest::test_01
Assertion failed ($a + ($b + 3)) === ($c * 3) -> false
# $a -> 1
# $b -> 2
# $b + 3 -> 5
# $a + ($b + 3) -> 6
# $c -> 3
# $c * 3 -> 9

/path/to/phpower/tests/example/SomeTest.php:13

2) Test\SomeTest::test_02
Assertion failed "a\nb\nc" === strrev($s) -> false
# $s -> "x\ny\nz"
# strrev($s) -> "z\ny\nx"

/path/to/phpower/tests/example/SomeTest.php:19

3) Test\SomeTest::test_03
Assertion failed $a == array_reverse($b) -> false
# $a
#  -> [
#       1,
#       2,
#       3,
#     ]
#
# $b
#  -> [
#       7,
#       8,
#       9,
#     ]
#
# array_reverse($b)
#  -> [
#       9,
#       8,
#       7,
#     ]
#

/path/to/phpower/tests/example/SomeTest.php:26

4) Test\SomeTest::test_04
Assertion failed $a == ['name'=>'bob','uid'=>2000,'gid'=>2000,] -> false
# $a
#  -> [
#       "name" => "alice",
#       "uid" => 1000,
#       "gid" => 1000,
#     ]
#

/path/to/phpower/tests/example/SomeTest.php:46

FAILURES!
Tests: 5, Assertions: 5, Failures: 4.

Limitations

Only for phpunit installed locally in project with composer (phpunit.phar is not supported).

LICENCE