我正在尝试学习如何模拟我的通用存储库,以便我可以对我的所有服务进行单元测试.
@H_404_2@我使用NHibernate Fluent来处理数据访问和Ninject的依赖(我对测试它不感兴趣)
@H_404_2@我的存储库界面如下所示:
public interface IRepository<TEntity> where TEntity : class { IQueryable<TEntity> GetAll(); TEntity Get(int key); void Insert(TEntity entity); void Update(TEntity entity); void Delete(int id); }@H_404_2@实际的存储库看起来像:
public class GenerRepository<TEntity> : IRepository<TEntity>where TEntity : Entity { protected ISession Session{get { return NHibernateHelper.OpenSession(); }} public IQueryable<TEntity> GetAll(){return Session.Query<TEntity>();} public TEntity Get(int key){return Session.Get<TEntity>(key);} public void Insert(TEntity entity){Session.Save(entity);} public void Update(TEntity entity){Session.Update(entity);} public void Delete(int id){Session.Delete(Session.Load<TEntity>(id));} }@H_404_2@我的所有服务都执行以下操作,将创建的存储库放入其中并使用它. @H_404_2@我已经阅读了很多关于如何做到这一点的文章,但没有一篇很简单或很好解释.所以在创建测试通用存储库或甚至模拟它之间的任何建议.我也有兴趣创建一个内存数据库但是如何在我的测试项目中为流畅的nhibernate设置配置而不在我的实际项目中编辑代码? @H_404_2@是否可以使通用存储库命中一个Tentity列表而不是数据库或内存数据库. @H_404_2@感谢阅读并期待建议.