2017 © Pedro Peláez
 

library phpunit-doubles

Initialises test doubles in PHPUnit test cases for you

image

zalas/phpunit-doubles

Initialises test doubles in PHPUnit test cases for you

  • Thursday, August 2, 2018
  • by jakzal
  • Repository
  • 1 Watchers
  • 6 Stars
  • 20 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 6 Versions
  • 0 % Grown

The README.md

PHPUnit Doubles

Build Scrutinizer Code Quality, (*1)

Initialises test doubles in PHPUnit test cases for you., (*2)

Installation

Composer

composer require --dev zalas/phpunit-doubles

Phar

The extension is also distributed as a PHAR, which can be downloaded from the most recent Github Release., (*3)

Put the extension in your PHPUnit extensions directory. Remember to instruct PHPUnit to load extensions in your phpunit.xml:, (*4)

<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
         extensionsDirectory="tools/phpunit.d"
>
</phpunit>

Usage

Include the Zalas\PHPUnit\Doubles\TestCase\ProphecyTestDoubles or Zalas\PHPUnit\Doubles\TestCase\PHPUnitTestDoubles trait to have your test doubles initialised in one of the supported test doubling frameworks., (*5)

Both the type of test double and the kind of test doubling framework are taken from the property type:, (*6)

/**
 * @var Vimes|ObjectProphecy
 */
 private $vimes;

Currently, two test doubling frameworks are supported:, (*7)

  • Prophecy - Prophecy\Prophecy\ObjectProphecy type hint
  • PHPUnit - PHPUnit\Framework\MockObject\MockObject type hint

Prophecy

<?php

use PHPUnit\Framework\TestCase;
use Prophecy\Prophecy\ObjectProphecy;
use Zalas\PHPUnit\Doubles\TestCase\ProphecyTestDoubles;

class DiscworldTest extends TestCase
{
    use ProphecyTestDoubles;

    /**
     * @var Vimes|ObjectProphecy
     */
    private $vimes;

    /**
     * @var Nobby|Fred|ObjectProphecy
     */
    private $nobbyAndFred;

    public function test_it_hires_new_recruits_for_nightwatch()
    {
        $discworld = new Discworld($this->vimes->reveal(), $this->nobbyAndFred->reveal());

        $discworld->createNightWatch();

        $this->vimes->recruit($this->nobbyAndFred)->shouldHaveBeenCalled();
    }
}

PHPUnit

<?php

use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Zalas\PHPUnit\Doubles\TestCase\PHPUnitTestDoubles;

class DiscworldTest extends TestCase
{
    use PHPUnitTestDoubles;

    /**
     * @var Vimes|MockObject
     */
    private $vimes;

    /**
     * @var Nobby|MockObject
     */
    private $nobbyAndFred;

    public function test_it_hires_new_recruits_for_nightwatch()
    {
        $discworld = new Discworld($this->vimes, $this->nobby);

        $this->vimes->expects($this->once())
            ->method('recruit')
            ->with($this->nobby);

        $discworld->createNightWatch();
    }
}

Contributing

Please read the Contributing guide to learn about contributing to this project. Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms., (*8)

The Versions

02/08 2018

dev-php-5.3

dev-php-5.3

Initialises test doubles in PHPUnit test cases for you

  Sources   Download

MIT

The Requires

 

01/08 2018

dev-master

9999999-dev

Initialises test doubles in PHPUnit test cases for you

  Sources   Download

MIT

The Requires

 

01/08 2018

dev-rethink-parent-property-access

dev-rethink-parent-property-access

Initialises test doubles in PHPUnit test cases for you

  Sources   Download

MIT

The Requires

 

01/08 2018

dev-extract-classes

dev-extract-classes

Initialises test doubles in PHPUnit test cases for you

  Sources   Download

MIT

The Requires

 

27/07 2018

v0.0.2

0.0.2.0

Initialises test doubles in PHPUnit test cases for you

  Sources   Download

MIT

The Requires

 

27/07 2018

v0.0.1

0.0.1.0

Initialises test doubles in PHPUnit test cases for you

  Sources   Download

MIT

The Requires