Каковы стандартные / лучшие практики для создания модульных тестов для функциональности с использованием баз данных? - PullRequest
15 голосов
/ 24 августа 2010

Я понял идею модульного тестирования, однако пытаюсь придумать простой способ сделать это, когда это требует функциональности базы данных.Например, у меня есть функция, которая возвращает результат на основе запроса выбора базы данных.Должна ли база данных всегда оставаться для меня неизменной, чтобы правильно видеть, что возвращаются только правильные результаты.Каков наилучший способ выполнения модульного тестирования (в PHP), когда требуется неактивность базы данных (будь то чтение, запись, обновление или удаление)?

Ответы [ 3 ]

14 голосов
/ 24 августа 2010

В руководстве по PHPUnit есть целая глава:

Это похоже на все остальное при юнит-тестировании. Создайте известное состояние и проверьте ваш код на предмет соответствия ожидаемым результатам.

4 голосов
/ 25 августа 2010

Это не модульный тест, если ему нужна база данных.

4 голосов
/ 24 августа 2010

Лично я создаю фиктивную базу данных тестирования и заполняю ее известным набором данных для каждого запуска тестирования (я делаю это прямо в функциях setUp). Затем тесты запускаются с этим набором данных, а затем он удаляется на tearDown ...

Теперь это скорее интеграционный тест, чем модульный тест (и лично я отношусь к нему иначе, чем модульный тест, выполняемый по собственному расписанию вместе с другими интеграционными тестами), но он все еще весьма полезен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...