Я пытаюсь войти в сферу TDD, и мне трудно провести модульное тестирование нескольких имеющихся у меня пользовательских моделей. Я пытаюсь проверить валидацию своих моделей, и бизнес-требования таковы:
Все требования легко проверяются, кроме 5, который требует, чтобы база данных находилась в известном состоянии. Я знаю, что с помощью PHPUnit я могу настроить свою базу данных в известное состояние с помощью файлов XML, но есть ли способ лучше?
Я хочу, чтобы моя база данных вернулась в то состояние, в котором она была до запуска тестов (т. Е. Во время разработки). Полагаю, я мог бы использовать транзакции MySQL для отката изменений, или, я полагаю, я мог бы также использовать две отдельные базы данных, одну для разработки и одну для тестирования.
Я также где-то читал, чтобы не использовать фактические соединения с БД в модульных тестах, а вместо этого использовать фиктивные данные. Не совсем уверен, как это работает.
Может ли кто-нибудь объяснить мне разные варианты, которые у меня есть, и какие маршруты являются лучшими?
Спасибо
Редактировать:
Я думаю, что пойду с Подход Ruby on Rails и просто настроил 3 отдельные базы данных: производство, разработка и тестирование. Если только у кого-то есть серьезные возражения.