Поскольку для разработки на 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");
}