2017 © Pedro PelĂĄez
 

library phpunit-dynamic-fixture

Dynamic setUp to create an appropriate context in your tests

image

folsh/phpunit-dynamic-fixture

Dynamic setUp to create an appropriate context in your tests

  • Friday, December 16, 2016
  • by folsh
  • Repository
  • 1 Watchers
  • 0 Stars
  • 283 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 2 Versions
  • 1 % Grown

The README.md

SensioLabsInsight Build Status Scrutinizer Quality Score Code Coverage, (*1)

DynamicFixture

Thanks to annotations, this library allows you to call dynamic/custom "setUp" methods before each one of your test. It eases the understanding of your test because you explicitly set which context/variables you will use. It also can speed up your tests as you only initialize what they need., (*2)

Installation

Composer

Simply add this to your composer.json file:, (*3)

"require": {
    "folsh/phpunit-dynamic-fixture": "dev-master"
}

Then run php composer.phar install, (*4)

PhpUnit configuration

To activate the plugin. Add the listener to your phpunit.xml(.dist) file:, (*5)

<?xml version="1.0" encoding="UTF-8"?>
<phpunit>
    ...
    <listeners>
        <listener class="folsh\DynamicFixture\DynamicFixtureListener" file="vendor/folsh/phpunit-dynamic-fixture/src/DynamicFixtureListener.php" />
    </listeners>
</phpunit>

Usage

Use the annotation "@setUpContext" to call the specified method(s) just before the test. Of course, you can add as many annotations as you want., (*6)

class MyTest extends PHPUnit_Framework_TestCase {

    private $name;

    /**
     * Must be public
     */
    public function setUpName()
    {
        $this->name = 'Nicolas';
    }

    public function initContext()
    {
        //...
    }

    /**
     * @setUpContext setUpName
     * @setUpContext initContext
     * @setUpContext ...
     *
     */
    public function testSetUpName()
    {
        //$this->name is "Nicolas"
    }
}

Params

If you want to add some parameters in your function, add them between brackets. Warning: at this time, you can only add simple types (see exemples) Types accepted: - string - json - array (single level) - numeric (convert in string !), (*7)

class MyTest extends PHPUnit_Framework_TestCase {

    private $name1;
    private $name2;
    private $list;

    /**
     * Must be public
     */
    public function setUpNames($name1, $name2)
    {
        $this->name1 = $name1;
        $this->name2 = $name2;
    }

    public function initContext()
    {
        //...
    }

    /**
     * @setUpContext setUpNames("Nicolas", "Cedric")
     */
    public function testSetUpNames()
    {
        //$this->name1 is "Nicolas"
        //$this->name2 is "Cedric"
    }
}
class MyTest extends PHPUnit_Framework_TestCase {

    private $list;

    /**
     * Must be public
     */
    public function setUpArray(array $list)
    {
        $this->list = $list;
    }

    public function initContext()
    {
        //...
    }

    /**
     * @setUpContext setUpArray(["Nicolas", "Cedric"])
     */
    public function testSetUpArray()
    {
        //$this->list is array("Nicolas", "Cedric")
    }
}

Customize

If you don't like the name of the annotation, you can change it by passing a new one in the constructor:, (*8)

 <listener class="folsh\DynamicFixture\DynamicFixtureListener" file="vendor/folsh/phpunit-dynamic-fixture/src/DynamicFixtureListener.php">
    <arguments>
        <string>myCustomSetUp</string>
    </arguments>
</listener>

The Versions

16/12 2016

dev-master

9999999-dev

Dynamic setUp to create an appropriate context in your tests

  Sources   Download

MIT

The Development Requires

by Cédric Folchi

25/08 2014

0.2.0

0.2.0.0

Dynamic setUp to create an appropriate context in your tests

  Sources   Download

MIT

The Development Requires

by Nicolas De Boose