글쎄 SQL Server에서 정밀한 테스트를 시도 할 때 매우 실망한 문제에 직면 해 있습니다. 나는 hibernate, dbunit, ms sql server2008r2와 jpa의 조합을 사용한다는 것에 주목하자.자바 dbUnit CRUD 테스트 오류
앞서 언급했듯이 dbunit을 사용하여 CRUD 작업을 테스트하려고합니다. dbunit에 대한 문서를 읽고 필자는 필요한 레코드와 작업이 끝날 때 비교할 XML 파일을 만듭니다. 필자의 경우 초기 xml에는 내 엔티티 간의 관계를 나타내는 두 줄만 포함되어 있습니다. 초기 XML
<xml>
<A id="1" name="nameA"/>
<B id="1" name="nameB" A_id="1">
</xml>
예상 결과
해체 작업이 정의되지 않은 상태에서 우리가 기본적으로, 깨끗한 삽입 전략 아래에만 설정 작업을 설정 한<xml>
<A id="1" name="nameA"/>
<B id="1" name="nameB" A_id="1">
<B id="2" name="nameBB" A_id="1">
</xml>
주 none입니다.
그래서 테이블 A에 대한 참조와 함께 테이블 b에 다른 레코드를 삽입하려고하면 데이터베이스가 깨끗한 경우 괜찮습니다. 그러나 동일한 테스트를 다시 실행할 때마다 외래 키 제약 조건 위반으로 인해 오류가 발생합니다. 이론상 dbunit은 xml에서 검색 한 데이터를 삽입 할 때마다 (클린 삽입 전략) 삭제를 역순으로 수행 한 다음 레코드를 삽입해야합니다. 그러나 앞서 언급했듯이 foreing 키 위반을 나타내는 레코드는 삭제되지 않으므로 역 순서가 실제로 작동하지 않는다고 생각하게됩니다.
아이디어가 있으십니까? 사전에 TNX
당신이 테스트 케이스 설정을 수행하는 데 사용하는 코드를 보여 줄 수있는 열린 트랜잭션이 있는지 여부를 확인할 수 있을까? –