目前我正在使用 EF6 在 UnitOfWork 中实现我的存储库。我还创建了一个 In-Memory 模拟实现(MockUnitOfWork 和 MockRepository),以便我可以在单元测试中使用它们,但是我现在必须处理繁琐的对象设置。
这不是 Autofixture 的设计初衷吗?我将如何获得一个可以在我的测试中使用的 MockUnitOfWork,其中包含填充的Foo和Barr存储库?我正在使用 NSubstitute 作为我的模拟框架。
工作单位
public interface IUnitOfWork
{
void Save();
void Commit();
void Rollback();
IRepository<Foo> FooRepository { get; }
IRepository<Bar> BarRepository { get; }
}
存储库
public interface IRepository<TEntity> where TEntity : class
{
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null, string includeProperties = "");
IEnumerable<TEntity> Get(Expression<Func<TEntity, bool>> filter = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null);
TEntity GetByID(object id);
void Insert(TEntity entity);
void Delete(object id);
void Delete(TEntity entityToDelete);
void Update(TEntity entityToUpdate);
}