Flowder PHPUnit is a PHPUnit Test Listener for integrating the Flowder fixture loader into PHPUnit test suites.
-
Install Flowder PHPUnit as a development dependency through Composer
$ composer install imjoehaines/flowder-phpunit --dev
-
Enable Flowder PHPUnit as a test listener in your
phpunit.xml
file (PHPUnit documentation)<listeners> <listener class="\Imjoehaines\Flowder\PhpUnit\FlowderListener"></listener> </listeners>
-
Bootstrap Flowder PHPUnit by calling
FlowderListener::bootsrap
in your PHPUnitbootstrap.php
file, passing in an instance of\Imjoehaines\Flowder\Flowder
(see the Flowder documentation for more information).This is only necessary until PHPUnit #1873 is fixed. After this, you can configure Flowder PHPUnit through your
phpunit.xml
file instead.A simple SQLite example might look like this:
<?php require __DIR__ . '/../vendor/autoload.php'; use Imjoehaines\Flowder\PhpUnit\FlowderListener; use Imjoehaines\Flowder\Loader\PhpFileLoader; use Imjoehaines\Flowder\Truncator\SqliteTruncator; use Imjoehaines\Flowder\Persister\SqlitePersister; $db = new PDO(...); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); FlowderListener::bootstrap( __DIR__ . '/_data/example.php', new PhpFileLoader(), new SqliteTruncator($db), new SqlitePersister($db) );
-
That's it! Before any test file runs, Flowder will load your fixture data for you