保存学说记录而不坚持

时间:2010-10-11 09:02:47

标签: php doctrine phpunit

在我的单元测试中,我希望有以下行为:

$myNewDoctrineRecord = new Dto_MyRecord();
$myNewDoctrineRecord->pk = 1; //the primary key
...
$myNewDoctrineRecord->save();

现在这个记录不应该真正存在于数据库中。但我想做

$myFetchedDoctrineRecord = Doctrine::getTable('Dto_MyRecord')->find(1);
//result should be $myFetchedDoctrineRecord === $myNewDoctrineRecord

我知道这可以通过DAO模式实现,其中我将DAO替换为一些模拟。但也许有一些可能性,所以只说说教义不要坚持,而只是“记住”记录。

谢谢! 马库斯

2 个答案:

答案 0 :(得分:1)

您可以启动事务,并在测试回滚结束时启动。这样你仍然可以找到()在事务中创建的记录,但回滚将确保它们不会被持久化。

答案 1 :(得分:0)

如果您的机器有一些空间,那么您可以将对象放入$ _SESSION。但要注意,Doctrine对象可以变得非常大。