2009-05-05 2 views
3

매핑을 위해 nHibernate와 Fluent를 사용하여 새 프로젝트를 시작했습니다. 아키텍트는 저에게 수백 개의 엔티티 클래스와 해당 Fluent 매핑 파일을 생성 한 데이터베이스를 보냈습니다. 나는 이것이 일을하는 이상적인 DDD 방식이 아니라는 것을 알고 있지만 인생은 거의 이상적이지 않습니다.nHibernate 매핑 테스트

내가하고 싶은 것은 모든 매핑이 정확하고 올바르게 매핑 된 열, OneToMany, ManyToMany 등을 테스트하는 것입니다.이 작업을 자동화하거나 쉬운 방법이 있습니까? 필자는 모든 엔티티의 레코드를로드하고 예외가 발생하지 않도록하는 간단한 저장소를 작성하는 것으로 간주했지만 대부분의 테이블에는 아직 데이터가 없습니다.

답변

4

Fluent NHibernate에서 PersistenceSpecification을 살펴보십시오. 그것은 거의 완벽하지는 않지만 많은 경우에 잘 처리됩니다.

+0

감사합니다. 발견 했으므로 지금 작동하도록 노력하고 있습니다. – Craig

+0

링크가 끊어졌습니다. –

+0

고침, 고마워. Wiki가 옮겨졌고 URL이 제대로 리디렉션되지 않은 것으로 보입니다. –

0

ORM 매핑을 테스트하려면 MBUnit 또는 NUnit의 RowTest 특성과 같은 단위 테스트에서 행 테스트 방식을 사용하는 것이 좋습니다. 이렇게하면 별개의 행 값에 대한 개별 단위 테스트를 작성하지 않아도됩니다. 빠른 시작을 위해 this 웹 캐스트를 살펴보십시오.

데이터베이스와 관련하여 다음 2 가지 전략을 사용할 수 있습니다. 특정 DB 인스턴스 또는 엔진에서 테스트해야하는 경우 트랜잭션을 사용할 수 있으며 DB에 대한 모든 기록이 어설 션 후에 롤백되는지 확인하십시오. 자신의 인스턴스와 엔진을 사용할 수있는 경우 SQLLite 또는 SQL CE를 단위 테스트 전용 DB로 사용할 수 있습니다. 이 DB는 단위 테스트에서만 사용되므로 단위 테스트를 실행할 때마다 항상 새로운 DB를 만들 수 있습니다.