Я пытаюсь создать безопасный набор тестов с Symfony2, Doctrine и MongoDB.
Что мне нужно сделать, так это загрузить много приборов в начале теста и выгрузить их после его окончания. Я думал сделать это с транзакцией, но... я не смог найти документацию о том, как это сделать с Doctrine и Mongo!
Я нашел хорошую документациюв документах Doctrine о том, как выполнять транзакции с ORM, но не об ODM.
Итак, я просмотрел исходный код класса Connection.php
, используемого Doctrine-Mongo, и не нашел beginTransaction
, . ] commit
и rollback
, которые использует версия dbal.
Я был в неведении, затем я спросил себя: «Возможен ли вообще откат в MongoDB?», и ответ, если он был найден в FAQ по MongoDB, был следующим:
MongoDB не использует традиционную блокировку или сложные транзакции с откатом
:( Так что я думаю, поэтому в ODM нет beginTransaction
или чего-то еще...
Но моя проблема остается: как я могу реализовать своего рода откат для моих тестов?
Единственная идея, которая у меня есть прямо сейчас, это вручную получить все идентификаторы документа, который я загружаю, а затем удалить их в tearDown()
. отстой, не так ли?
Другие идеи??
РЕДАКТИРОВАТЬ: После моего первого комментария к этому вопросу о том, что я хочу иметь одну и ту же БД в тестировании и разработке, я подумал:почему бы не использовать отдельную тестовую базу данных, куда копируется база данных разработки при запуске тестов. , а что можно беззаботно уронить?
Может быть, это лучше? На самом деле это выглядит проще и безопаснее для меня. Что вы думаете, ребята?
Спасибо :)