다음 프로젝트에서 모든 저장소 클래스를 버리고 서비스 클래스에서 직접 ISession
을 사용하려고합니다. 그 이유는 내 리포지토리 클래스가 호출을 ORM으로 전달하는 경향이 있기 때문입니다 (즉, 실제 논리가 없음).nhibernate 테스트 전략
이것의 가장 큰 단점은 단위 테스트를 어렵게 만들고 데이터베이스가없는 다른 서비스 (예 : sqlite 같은 메모리 내장 DB 없음)가 있는지 궁금합니다. ISession
을 조롱하는 것은 나쁜 생각입니까?
아니면 그냥 가상 저장소 클래스를 사용해야합니까?
'데이터베이스없이'요구 사항을 이해하지 못합니다. 서비스 클래스에 다음과 같은 내용이 있다고 가정하십시오 :'Session.Query .Where (u => u.Domain = domain)'. 이 쿼리를 테스트하여 올바른 SQL 및 올바른 결과를 생성하는지 확인 하시겠습니까? 어떻게 그럴 수 있니? –
@sJhonny : 단위 테스트가 아닌 통합 테스트. – jgauffin