В настоящее время я использую EF6 для реализации своих репозиториев внутри UnitOfWork. Я также создал фиктивные реализации In-Memory (MockUnitOfWork и MockRepository), чтобы использовать их в модульных тестах, однако теперь мне приходится иметь дело с утомительной настройкой объектов.
Разве не для этого предназначен Autofixture? Как мне получить MockUnitOfWork, который я могу использовать в своих тестах, который содержит заполненные репозитории Foo и Barr? Я использую NSubstitute для своей насмешливой структуры.
IUnitOfWork
public interface IUnitOfWork
{
void Save();
void Commit();
void Rollback();
IRepository<Foo> FooRepository { get; }
IRepository<Bar> BarRepository { get; }
}
IRepository
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);
}
AutoConfiguredMoqCustomization
(доступно с версии 3.20.0) соответствовало бы вашим требованиям. - person dcastro   schedule 21.08.2014