PHP HSQLDB для модульного тестирования

#php #unit-testing #phpunit #hsqldb

#php #модульное тестирование #phpunit #hsqldb

Вопрос:

Есть ли способ запустить базу данных в памяти, такую как hsqldb?

Мне это нужно для модульного тестирования. В Java с этим нет проблем. Но, к сожалению, в PHP с этим есть проблема. Итак, есть ли способ?

Ответ №1:

Вы должны иметь возможность использовать этот модуль Perl для доступа к HSQLDB через PHP

https://metacpan.org/pod/DBD::JDBC

Ответ №2:

В идеале для модульного тестирования вы должны имитировать свой доступ к данным, чтобы тестировать свои компоненты изолированно — поэтому вы должны использовать mocks и заглушки, чтобы удалить зависимость от базы данных в своих тестах.

Комментарии:

1. Я обнаружил, что иногда более продуктивно кодировать функциональные и частично интеграционные тесты, где я могу проверить почти весь стек — ОТПРАВИТЬ данные в действие контроллера MVC, а затем убедиться, что данные благополучно достигли базы данных. Это также помогает найти некоторые проблемы с забытыми транзакционными фиксациями и проблемами преобразования данных, которые было бы сложнее обнаружить с помощью DAL mocks. В настоящее время я использую SQLite, но у него есть некоторые особенности, которые иногда замедляют меня, потому что мне приходится настраивать код миграции моей базы данных для работы на SQLite.

2. @JustAMartin В эти дни (примерно через четыре года после этого ответа) Я использую базу данных в памяти для тестов, что означает хорошую чистую базу данных каждый раз, когда я запускаю пакет.