2010-04-23 1 views
1

프로젝트의 데이터베이스 액세스 계층에 대한 단위 테스트를 시도하고 있습니다. 하지만,이 레이어를 Apache Derby 데이터베이스를 사용하여 테스트해야하며 제작 테스트 중에 oracle에서 수행해야합니다.dbunit, 데이터베이스 파일의 동일한 XML 표현을 다른 데이터베이스에 사용할 수 있습니다.

그래서 dbunit을 사용하여 데이터베이스의 동일한 XML 표현을 사용할 수 있습니까?

+0

"데이터베이스의 XML 표현"이란 정확히 무엇을 의미합니까? Hibernate/JPA, DbUnit 데이터 셋과 같은 ORM 매핑 또는 ...? –

+0

DbUnit 데이터 집합, 두 개의 다른 데이터베이스 형식에 대해 단일 데이터 집합을 사용할 수 있습니까? – changed

답변

0

아시다시피 프로덕션 환경과 동일한 개발 환경이 아닙니다. derby db에 대한 DAL을 생성하고 라이브로 가기 전에 oracle 대신 DAL로 바꿉니다 (DAL이 기본이 아닌 경우 그렇게해야합니다). 이 DAL을 통해 테스트 슈트를 만들어 마이그레이션 위험을 줄이려고합니다.

이 경우 SUT (테스트중인 시스템)는 DAL + DB가됩니다. DbUnit을 직접 사용하는 DB가 아니라 DAL 인터페이스를 테스트해야합니다. "store"메소드를 통해 DB에 행을 삽입하고 "select"메소드를 사용하여로드하십시오. 각 테스트마다 신선한 조명기를 사용하십시오 - 테스트 실행 전에 빈 DB를 복원하십시오. 이러한 전략만으로도 DAL 인터페이스가 oracle과 derby에서 모두 실행될 수 있습니다.

+0

예, 내 문제를 올바르게 이해했습니다. 내 DAL을 테스트해야하지만 문제는 테스트 및 프로덕션 환경에 대해 서로 다른 DB가 있다는 것입니다. 그렇다면 두 가지 경우 모두 필요한 쿼리가 달라질 수 있기 때문에 DAL에서이 여러 DB를 어떻게 처리 할 수 ​​있습니까? – changed

+0

두 데이터베이스에 대해 하나의 단일 DAL을 사용할 계획입니까? SQL 방언의 차이점을 어떻게 처리 할 것인가? 구조 업데이트 스크립트는 어떻게 작성합니까? –

관련 문제