DbUnit для C ++? - PullRequest
       21

DbUnit для C ++?

0 голосов
/ 02 марта 2009

Мы разрабатываем на C ++ под Linux и собираемся настроить автоматические тесты. Мы намерены использовать среду тестирования, такую ​​как CppUnit или CxxTest. Мы используем Ant для сборки программного обеспечения, и мы также будем использовать его для запуска тестов.

Поскольку некоторые тесты будут включать доступ к базе данных, мы ищем инструмент или среду, которая облегчит задачи подготовки и очистки тестовых данных в базе данных - точно так же, как DbUnit (расширение JUnit) в мире Java.

Другим вариантом может быть использование фактического DbUnit - доступна Java VM. Использование задачи Ant в DbUnit представляется наиболее перспективным. Любые связанные полевые отчеты приветствуются!

Ответы [ 3 ]

2 голосов
/ 02 марта 2009

Я бы порекомендовал ускорить юнит-тестирование . Возможно, вам придется использовать настройки и демонтажа для очистки базы данных вручную. Конечно, вы можете создать свой собственный C ++ DbUnit в ODBC. Если вы дадите мне знать, потому что я тоже могу это использовать!

0 голосов
/ 14 марта 2009

Поскольку для разработки на C ++, похоже, нет DbUnit-подобного инструмента, мы создали небольшую собственную платформу. По сути, это адаптер для вызова реальных операций DbUnit из C / C ++ testrunners. Он использует Задачи Ant , предоставленные DbUnit.

Мы определили некоторые макросы, такие как TS_DB_INSERT(filename), которые вызывают system("ant -Ddb.dataset=filename db.insert") и т. П.

В этом случае db.insert - это цель Ant, которая выполняет задачу DbUnit, выполняющую операцию INSERT в базе данных. filename ссылается на набор данных XML, содержащий данные для вставки. Также есть макрос утверждения, который оборачивает DbUnit compare.

Тестовый пример может выглядеть так:

void testDatabaseStuff
{
    TS_DB_INSERT("input.xml");

    TestedClass::doSomething();

    TS_DB_ASSERT("expected.xml");
}
0 голосов
/ 02 марта 2009

Полагаю, у вас есть собственный C ++ API для работы с БД. Если это правда, вам лучше сделать всю подготовку к БД самостоятельно. В этом случае вы также протестируете свой API БД.

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