<?php namespace AKlump\PHPUnit\Test\EasyMock; use AKlump\PHPUnit\EasyMockTrait; use PHPUnit\Framework\TestCase;
The mockObjectsMap portion of getSchema provides a means of having one or more mocked objects automatically created before the start of each test method.
class MockObjectsMapUnitTest extends TestCase {
use EasyMockTrait;
/**
* {@inheritdoc}
*
* Demonstrate the use of mockObjectsMap, which creates mocked instances of a
* set of classes and adds them to the test class as properties.
*/
protected function getSchema() {
return [
'classToBeTested' => "AKlump\PHPUnit\Test\EasyMock\Charlie",
'mockObjectsMap' => [
'delta' => '\AKlump\PHPUnit\Test\EasyMock\Delta',
],
];
}
public function testCanSetDelta() {
$this->delta->allows('getName')->andReturns('Juliette');
$this->obj->setDelta($this->delta);
$this->assertSame('Juliette', $this->obj->getDelta()->getName());
}
}
class Charlie {
private $delta;
public function setDelta(Delta $delta) {
$this->delta = $delta;
return $this;
}
public function getDelta() {
return $this->delta;
}
}
This class gets added in the mockObjectsMap array and then automatically mocked to $this->delta.
class Delta {
public function getName() {
return 'Frank';
}
}