In order to be sure that the Repository will work in production, we'll need to test its implementation. To do this, we have to test the boundaries of the system, making sure that our expectations are correct.
In the case of a Doctrine test, the setup will be a little bit more sophisticated:
use Doctrine\DBAL\Types\Type; use Doctrine\ORM\EntityManager; use Doctrine\ORM\Tools; use Domain\Model\Post; class DoctrinePostRepositoryTest extends \PHPUnit_Framework_TestCase { private $postRepository; public function setUp() { $this->postRepository = $this->createPostRepository(); } private function createPostRepository() { $this->addCustomTypes(); $em = $this->initEntityManager(); $this->initSchema($em); return new PrecociousDoctrinePostRepository($em); } private function addCustomTypes() { if (!Type::hasType('post_id')) { Type::addType( 'post_id'...