0
IOC 용 Castle Windsor와 ORM 용 Fluent NHibernate를 사용하고 있습니다. 매핑 및 기본 기능을 확인하기 위해 통합 테스트를 만들고 있습니다. Castle Windsor가 인스턴스화 한 객체에 액세스하려면 어떻게합니까? 여기 Castle Fluent 통합 테스트에서 NHiberate에 액세스하는 방법
public class RepositoryInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(
Component.For<IContainerRepository>().ImplementedBy<ContainerRepository>().LifestylePerWebRequest());
}
}
내 저장소입니다 : 여기
내 저장소 설치 프로그램입니다
공용 인터페이스의 IContainerRepository { 는 IEnumerable GetActiveContainers(); }
공용 클래스 ContainerRepository : BaseRepository, IContainerRepository는 { 공개 ContainerRepository (ISession 세션) :베이스 (세션) { }
public IEnumerable<Container> GetActiveContainers()
{
var query = Session.CreateCriteria<Container>()
.Add(Restrictions.Eq("ContentsType", "Raw Material"))
.Add(Expression.Sql("QTY_IN - QTY_OUT > 0"));
return query.List<Container>();
}
} 여기
간단한 테스트입니다 쓸 내용 :
[Test]
public void GetActiveTest()
{
var repo = **DoSomethingHere**.GetInstance<IContainerRepository>();
var list = repo.GetActiveContainers().ToList();
Assert.IsTrue(list.Count > 0);
}
가 어떻게이 ContainerRepository에 전달하는 유창함 자 NHibernate 세션에 대한 액세스를 얻을 :
귀하의 윈저 컨테이너 테스트는 다음과 같이 보일 수 있는가? –
죄송합니다 코드 서식을 ... 그것을 고칠 수 없습니다. –