2009-07-09 4 views
2

다음 코드를 테스트 해보십시오.단위 테스트의 조롱 및 분리 된 조건

public IList<T> Find(DetachedCriteria criteria) 
{  
    return criteria.GetExecutableCriteria(session).List<T>(); 
} 

난하지만 난이 하나에 문제가 있어요 (등 ISession, ISessionFactory에 대한 모의 객체를 설정 같은) NH 구현을 조롱하고 싶습니다.

답변

1

NHibernate를 테스트 할 때 실제로 테스트하지 않아야합니다. 사실, NH 소스 코드 자체에서 매우 유사한 단위 테스트를 볼 수 있습니다. 내 경험에

Db.Stub(x => x.Find(Arg<DetachedCriteria>.Is.Anything))).Return(new List<Blah>{new Blah()}); 

을, 당신이 당신의 쿼리합니다 (구축 예를 들어, 사람을 테스트하려는 경우 :

당신은 여기에 당신이 그것을 스텁 줄 방법이 코드를 사용하여 다른 코드를 테스트하고 싶었다면 DetachedCriteria) SQLite와 같은 메모리 내장 DB 또는 실제 SQL Server 인스턴스 (또는 인 메모리 용 SQL Server CE)를 사용하는 것이 훨씬 좋습니다.

+0

저장소 구현 자체를 테스트하고있었습니다. 네가 맞다. 여기서는 테스트 할 것이 없다. NHibernate를 테스트 할 것이고, 아마 테스트 질의에 초점을 맞추어야한다. 감사합니다. –