Я пишу оболочку C ++ для libpq. Однако я не могу понять, как мне написать свои модульные тесты. Моя первоначальная реакция заключалась в том, чтобы просто обернуть интерфейс libpq во что-то смешное, но это побеждает цель. Кто-нибудь делал это раньше? Если так, то как?
Для модульного тестирования вы можете смоделировать некоторые из ваших классов (db connection, query, binder параметров). Для более крупных функциональных тестов вы можете использовать реальное соединение с тестовой БД. Хорошо работал для двух оболочек libpq C ++, которые я делал несколько лет назад (один для Qt, другой для C ++ / STL).
Что касается libpqxx — он все еще не поддерживает двоичный протокол libpq v3, который в некоторых случаях (например, импорт / экспорт больших объемов двоичных данных) может быть узким местом. Кроме этого, он довольно прост в использовании и довольно приятен.
Не делай этого. Для libpq уже есть оболочка C ++, которая называется libpqxx
.
Я бы протестировал использование cppunit с пре- и почтовым индексом для initdb
и начать новый новый кластер PostgreSQL с учетом initdb
а также pg_ctl
на пути.