我正在使用Castle Windsor進行IOC和Fluent NHibernate的ORM。我正在創建集成測試來驗證映射和基本功能。如何訪問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);
}
,我怎麼把訪問功能NHibernate會議通入ContainerRepository? –
對不起,代碼格式...似乎無法修復它。 –