【发布时间】:2015-04-22 08:51:43
【问题描述】:
我想编写一个测试用例,通过 Doctrine 实体管理器验证一个实体是否已完全持久化到数据库中。
例如:
<?php
function notPersisted() {
return new Entity();
}
function persistedButNotFlushed() {
$entity = new Entity();
$entityManager->persist($entity);
return $entity;
}
function persistedAndFlushed() {
$entity = new Entity();
$entityManager->persist($entity);
$entityManager->flush();
return $entity;
}
function persistedButNotAllChangesFlushed() {
$entity = new Entity();
$entityManager->persist($entity);
$entityManager->flush();
$entity->setFoo('bar');
$entityManager->persist($entity);
return $entity;
}
$this->assertNotPersistedToDb(notPersisted());
$this->assertNotPersistedToDb(persistedButNotFlushed());
$this->assertPersistedToDb(persistedAndFlushed());
$this->assertNotPersistedToDb(persistedButNotAllChangesFlushed());
你会怎么做呢?
【问题讨论】:
-
$entityManager->getUnitOfWork()->getScheduledEntityInsertions()看起来很合适,不是吗?看到您实际上是在尝试断言UnitOfWork将是什么... See what else you can do -
看起来您正在测试 D2 功能。可能需要重新考虑这些测试是否真的能完成任何事情。
标签: php doctrine-orm doctrine phpunit