Frankenstein
This let you use PHPUnit with Prophecy mocks and Atoum asserters.
Usage
Your test class must extend Hautelook\Frankenstein\TestCase:
<?php
namespace AcmeDemoBundle\Tests\Foo;
use Hautelook\Frankenstein\TestCase;
class BarTest extends TestCase
{
}When extending from the provided TestCase everything else than Atoum asserters and Prophecy mocks are restricted.
You will have to use Prophecy to mock, using $this->prophesize():
public function test()
{
$routerProphecy = $this->prophesize('Symfony\Component\Routing\Generator\UrlGeneratorInterface');
$routerProphecy
->generate('acme_demo_index')
->willReturn('/acme')
;
$foo = new Foo($routerProphecy->reveal());
}You will have to use atoum asserters instead of phpunit's:
public function test()
{
$foo = new Foo();
$this
->string($foo->getName())
->isEqualTo('foo foo foo')
;
}Prophecy arguments
The test class let you access the Prophecy\Argument shortcut methods through $this->arg or $this->arg():
public function test()
{
$routerProphecy = $this->prophesize('Symfony\Component\Routing\Generator\UrlGeneratorInterface');
$routerProphecy
->generate($this->arg->type('string'))
->willReturn('/acme')
;
$foo = new Foo($routerProphecy->reveal());
}Running the Tests
Install the Composer dev dependencies:
php composer.phar install
Then, run the test suite using phpunit:
bin/phpunit
License
Frankenstein is released under the MIT License. See the bundled LICENSE file for details.
Credits
This library has copies of code https://github.com/atoum/atoum and uses https://github.com/phpspec/prophecy-phpunit .


