在我的单元测试中,我希望有以下行为:
$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替换为一些模拟。但也许有一些可能性,所以只说说教义不要坚持,而只是“记住”记录。
谢谢! 马库斯
答案 0 :(得分:1)
您可以启动事务,并在测试回滚结束时启动。这样你仍然可以找到()在事务中创建的记录,但回滚将确保它们不会被持久化。
答案 1 :(得分:0)
如果您的机器有一些空间,那么您可以将对象放入$ _SESSION。但要注意,Doctrine对象可以变得非常大。