amphp/phpunit-util

Helper package to ease testing with PHPUnit.

Fund package maintenance!
amphp

v1.4.0 2020-05-01 14:48 UTC

This package is auto-updated.

Last update: 2020-09-04 16:21:38 UTC


README

License

amphp/phpunit-util is a small helper package to ease testing with PHPUnit in combination with the Amp concurrency framework.

Required PHP Version

  • PHP 7.0+

Installation

composer require --dev amphp/phpunit-util

Usage

<?php

namespace Foo;

use Amp\ByteStream;
use Amp\PHPUnit\AsyncTestCase;
use Amp\Socket;

class BarTest extends AsyncTestCase
{
    // Each test case is executed as a coroutine and checked to run to completion
    public function test()
    {
        $socket = yield Socket\connect('tcp://localhost:12345');
        yield $socket->write('foobar');
        
        $this->assertSame('foobar', yield ByteStream\buffer($socket));
    }
}

Deprecated Functionality

This package also provides a PHPUnit TestListener to reset the global event loop after each test, but this is deprecated.

<phpunit>
    <!-- ... -->

    <!-- DEPRECATED, use AsyncTestCase instead -->
    <listeners>
        <!-- DEPRECATED, use AsyncTestCase instead --> 
        <listener class="Amp\PHPUnit\LoopReset" />
    </listeners>

    <!-- ... -->
</phpunit>