2013-03-20 2 views
1

나는 상향식 프로젝트에서 테스트를 수행하는 방법을 조사하기 위해 과제를 배정 받았습니다.실현 가능한 데이터베이스 테스트

현재 우리는 SQL 문에 대한 구조화 된 테스트가 필요할 때마다 결정하려고합니다. 필자는 "get"문에 대해 올바른 데이터를 반환하지만 insert, delete 또는 update를 테스트하지 않기 위해 테스트 슈트를 사용하는 것이 좋습니다. DB 및 foregin 키 예외를 선택하십시오 일부 depedency가 누락되면 던져 질 것입니다. 이제

, 나는이 테스트를 수행하는 데 사용할 DBunit 체크 아웃 된 적이 있지만 나는 conserns의 몇 가지 있습니다

그것이 가능 1.Is 전술 한 바와 같이 테스트를 수행 할 수 있습니까? 아니면 이러한 테스트를 만들고 그만한 가치가없는 테스트 데이터를 삽입해야 할 때입니까? 아마도 개발자가이 임시 작업을 테스트하는 것으로 충분할 수 있습니까?

2. 각 테스트에 대한 적절한 테스트 데이터를 결정하는 데 많은 시간이 소요될 수 있습니다. DBunit이 필요로하는 flat-xml-file에 테스트 데이터를 수동으로 삽입해야합니다 (예상 데이터를 DBunit에서 생성하게하려면 해당 데이터를 가져 오는 SQL에 종속적입니다). 이 경우인가요?

3. 데이터베이스 테스트를 수행하여 SQL 문을 확인하는 것이 더 쉽고 간단합니다.

이 프로젝트는 당신이하고 DBUnit을 사용하거나 (각 시험에서) 프로그래밍 방식 DB 컨텐츠를 구축 할 수 있습니다 최대 절전 모드, 자바와 MS SQL 서버

답변

0

을 사용하는 것입니다. 중요한 부분은 테스트 프레임 워크 (예 : 스프링 테스트)가 각 테스트 후에 롤백을하도록하는 것입니다. 일단 환경을 설정하면 단일 트랜잭션 (get, insert, delete)에서 수행 된 DML을 테스트하기 쉽습니다.

DDL을 테스트하려는 경우 (일부 데이터베이스는 트랜잭션 외부에서 수행함) 각 테스트를 수행하기 전에 수동으로 롤백하거나 처음부터 데이터베이스를 작성해야합니다 (예 : 메모리 db). 최대 절전 모드가 유효성 검사 부분을 수행 할 때 DDL 테스트는 일반적으로 필요하지 않습니다.

그리고 예 : 쿼리를 테스트해야합니다. 환경 준비에 시간을 할애 할 가치가 있습니다.