문제

우리는 Linux에서 C ++에서 개발 중이며 자동 테스트를 설정하려고합니다. CPPUnit Oder CXXTest와 같은 테스트 프레임 워크를 사용하려고합니다. 우리는 ANT를 사용하여 소프트웨어를 구축하며 테스트를 실행하는 데 소프트웨어를 사용할 것입니다.

일부 테스트에는 데이터베이스 액세스가 포함되므로 Java 세계의 DBUNIT (Junit Extension)와 마찬가지로 데이터베이스에서 테스트 데이터를 준비하고 정리하는 작업을 용이하게하는 도구 또는 프레임 워크를 찾고 있습니다.

또 다른 옵션은 실제 DBUNIT를 사용하는 것입니다. Java VM을 사용할 수 있습니다. DBUNIT의 개미 작업을 사용하는 것이 가장 유망한 것 같습니다. 모든 관련 필드 보고서는 환영합니다!

도움이 되었습니까?

해결책 3

C ++ 개발을위한 DBUNIT와 같은 도구가없는 것 같습니다. 우리는 우리 자신의 약간의 프레임 워크를 구축했습니다. 기본적으로 C/C ++ 테스트 런너 내에서 실제 DBUNIT 작업을 호출하기위한 어댑터입니다. 그것은 사용합니다 개미 작업 DBUNIT가 제공합니다.

우리는 몇 가지 매크로와 같은 것을 정의했습니다 TS_DB_INSERT(filename) 어떤 전화 system("ant -Ddb.dataset=filename db.insert") 그리고 같은.

이 경우 db.insert 데이터베이스에서 삽입 작업을 수행하는 DBUNIT 작업을 실행하는 개미 대상입니다. 그만큼 filename 참조 삽입 할 데이터가 포함 된 XML 데이터 세트를 참조하십시오. dbunit을 감싸는 어설 션 매크로도 있습니다. compare.

테스트 케이스는 다음과 같습니다.

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

    TestedClass::doSomething();

    TS_DB_ASSERT("expected.xml");
}

다른 팁

추천합니다 단위 테스트 부스트. 데이터베이스를 수동으로 정리하려면 설정 및 분해를 사용해야 할 것입니다. 물론 ODBC에서 자신의 C ++ DBUNIT를 구축 할 수 있습니다. 내가 이것을 사용할 수 있기 때문에 알려 주시면 알려주세요!

DB와 함께 작업 할 자신의 C ++ API가 있다고 생각합니다. 그것이 사실이라면, 당신은 자신의 모든 DB 준비를하는 것이 좋습니다. 이 경우 DB API도 테스트합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top