문제

Nhiberante (HibernateTemplate)와 함께 Spring.net을 사용하여 DAO를 구현하고 있습니다.

또한 'AbstractTransactionAldBProviderspringContextTests'에서 확장되는 통합 테스트도 있습니다.

DI는 잘 작동하고 모든 테스트 패스이지만 때로는 통과합니다. 그들이하지 말아야 할 때에도.

예를 들어 내 hbm.xml 파일이 다음과 같은 오류가있는 경우.

<class name="Confluence.Domain.User" table="THIS TABLE DOES NOT EXIST">

테스트는 실패하지만 오류가 다음과 같으면 다음과 같습니다.

<many-to-many class="Confluence.Domain.User" column="THIS COLUMN DOES NOT EXIST"/>

테스트는 버그를 조용히 숨기고 통과합니다.

SetComplete ()를 사용하여 테스트하고 변경 사항을 확인하고 있지만 이러한 종류의 테스트에 대한 전체 아이디어는 그렇지 않다고 생각합니다.

누구 든지이 문제를 해결하는 방법을 말해 줄 수 있습니까?

매우 감사합니다!

@ben : 실제로 SQL 스크립트를 실행하여 작동하는지 확인 해야하는 경우 이러한 종류의 스프링 테스트를 사용하면 어떤 이점이 있습니까?

도움이 되었습니까?

해결책

매핑에 구문 오류가 있으면 nhibernate가 config.buildsessionfactory ()에서 실패합니다.

그러나 오해/존재하지 않는 데이터베이스 개체의 경우, nhibernate가 알 수있는 유일한 방법은 실제로 쿼리를 실행하는 것입니다 ... 따라서 일부 통합 테스트를 사용하여 단일 엔터티에서 삽입/선택을 테스트하여 작동하는지 확인할 수 있습니다.

그래도 이것이 Spring.net과 어떤 관련이 있는지 잘 모르겠습니다.

다른 팁

NH 기반 DAO를 테스트 할 때는 데이터베이스가 새 정보로 업데이트되지만 이전과 같이 여전히 롤백되도록 세션을 플러시해야합니다. 이 작업을 수행하는 방법은 여기에 설명되어 있습니다. http://forum.springframework.net/showthread.php?t=5246 참조 문서에 이것을 추가했습니다. 도움이 되었기를 바랍니다.

건배, 마크

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