#php #unit-testing #phpunit #hsqldb
#php #модульное тестирование #phpunit #hsqldb
Вопрос:
Есть ли способ запустить базу данных в памяти, такую как hsqldb?
Мне это нужно для модульного тестирования. В Java с этим нет проблем. Но, к сожалению, в PHP с этим есть проблема. Итак, есть ли способ?
Ответ №1:
Вы должны иметь возможность использовать этот модуль Perl для доступа к HSQLDB через PHP
Ответ №2:
В идеале для модульного тестирования вы должны имитировать свой доступ к данным, чтобы тестировать свои компоненты изолированно — поэтому вы должны использовать mocks и заглушки, чтобы удалить зависимость от базы данных в своих тестах.
Комментарии:
1. Я обнаружил, что иногда более продуктивно кодировать функциональные и частично интеграционные тесты, где я могу проверить почти весь стек — ОТПРАВИТЬ данные в действие контроллера MVC, а затем убедиться, что данные благополучно достигли базы данных. Это также помогает найти некоторые проблемы с забытыми транзакционными фиксациями и проблемами преобразования данных, которые было бы сложнее обнаружить с помощью DAL mocks. В настоящее время я использую SQLite, но у него есть некоторые особенности, которые иногда замедляют меня, потому что мне приходится настраивать код миграции моей базы данных для работы на SQLite.
2. @JustAMartin В эти дни (примерно через четыре года после этого ответа) Я использую базу данных в памяти для тестов, что означает хорошую чистую базу данных каждый раз, когда я запускаю пакет.