1
我刚刚交了一个未完成的asp.Net MVC 3/nHibernate项目来修复和完成,并且我正在尝试获取已通过的nUnit单元测试。单元测试nHibernate存储库 - 如何添加到存储库?
存储库测试是导致问题的原因。我所要做的只是将一些项目添加到测试存储库中,但如果我能够弄清楚如何做到这一点,我就很难受。情况如下:
[Test]
public void CanGetAllThings()
{
ServiceLocatorInitializer.Init();
ThingRepository thingRepository = new ThingRepository(); // ThingRepository inherits from NHibernateRepository<T>, IRepository<T>
Thing thingA = new Thing { /*initialization values*/ };
Thing thingB = new Thing { /*initialization values*/ };
componentAuthorizationRepository.DbContext.BeginTransaction();
ThingRepository.Save(ThingA); // Doesn't appear to be doing anything
ThingRepository.Save(ThingB);
componentAuthorizationRepository.DbContext.CommitTransaction();
ThingRepository.GetAll().ShouldNotBeNull(); // Passes
ThingRepository.GetAll().Count.ShouldEqual(2); // Fails with actual value 0
}
我应该使用一个模拟框架来创建一个内存数据库吗?看起来这对于这样一个简单的测试来说太过分了,应该只有一个Repository.Add()或者Repository.Save()方法,但是我显然在这里丢失了一些至关重要的东西。
我是一名初级开发人员,也是MVC,nHibernate和实际上单元测试的新手,所以我甚至不清楚我的知识差距在哪里,所以我可以研究!任何指针非常赞赏。