NHibernate 3을 사용하는 프로젝트에서 일하고있다. 그러나 코드는 꽤 난잡하다. 내가 뭘하고 싶은 것입니다 :NHibernate와 저장소 패턴 사용하기 - 문맥과 필터 표현을 조롱하는 법을 다루는 방법
- 이 프로젝트에
- 소개 저장소 패턴을 테스트 코드를 소개합니다 - 나는 엔티티 프레임 워크 4 프로젝트를했고, 나는 관계없이 스토리지, 쿼리를 테스트하기 위해, 특히 기회를 그것을 즐겼다 사용 (내부 저장소를 모의하고 객체 목록과 같은 메모리 내 구현을 주입 할 수 있습니다.) 현재 DAO 코드가 CreateCriteria 메소드와 작동하며 NHibernate와 관련된 쿼리를 작성하기 때문에 NHibernate 저장 영역을 다른 것으로 (적어도 적어도 목록 인스턴스에 NHibernate.ICriteria를 실행하는 방법을 모르겠다. 그래서 저장소 구현에 상관없이 사용할 수있는 쿼리를 만드는 방법이 필요하다. ation.
어떤 방법으로 달성 할 수 있습니까?
단위 테스트와 관련이 있습니다. 당신이 쓴 것은 조롱 된 저장소 호출의 결과를 조롱하는 것입니다 - 예를 들어 FindByCity ('Chicago')는 10 개 도시를 반환합니다. 그러나 내가 성취하고자하는 것은 복잡한 쿼리가 정확하게 처리되는지 테스트하는 것입니다. 예를 들어 FindBy (new QueryByCity ('Chicago'))는 10 개 도시를 반환합니다. 올바르게 구현 된 쿼리를 확인하기 위해 내부 컨텍스트/메모리 저장 공간을 모의하고 싶습니다 (예 : 20 개 도시). 리포지토리는 쿼리를 적용합니다. 실제로 쿼리와 일치하는 도시를 반환합니다. – dragonfly
흠, 실제로, 다시 한 번 읽은 후, 내가하고있는 일은 데이터베이스 통합 테스트 인 것 같습니다. 그게 맞습니까? – dragonfly
@dragonfly : 예, 데이터베이스 통합 테스트입니다. 데이터베이스, NH, 데이터 등 모든 것이 필요하지만 모든 종류의 쿼리, 심지어 표준 SQL에서도 작동합니다. –