Skip to content

Implement assertion like Power Assert in PHP.

License

Notifications You must be signed in to change notification settings

hexlet-components/phpower

 
 

Repository files navigation

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

About

Implement assertion like Power Assert in PHP.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%