Сохранить запись доктрины без сохранения - PullRequest
2 голосов
/ 11 октября 2010

в рамках моих юнит-тестов я хотел бы иметь следующее поведение:

$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 на какую-то пародию. Но, возможно, есть какая-то возможность, так что просто скажи, что Доктрина не настаивает, а только «запоминает» записи.

Спасибо! Markus

Ответы [ 2 ]

1 голос
/ 11 октября 2010

Вы можете начать транзакцию и в конце отката теста.Таким образом, вы все равно можете найти () записи, созданные в транзакции, но откат обеспечит их сохранение.

0 голосов
/ 11 октября 2010

Если на вашей машине есть место, вы можете поместить свои объекты в $ _SESSION. Но будьте осторожны, объекты Doctrine могут стать довольно большими.

...