У меня есть следующий интерфейс репозитория
public interface IRepository<TEntity> {
TEntity FindById(int id);
TEntity FindById(long id);
etc
}
Затем у меня есть следующий класс репозитория, который наследуется от интерфейса выше
public class Repository<TEntity> : IRepository<TEntity> where TEntity : class {
private DB _context;
public Repository() {
_context = new DB();
}
public Repository(DB context) {
_context = context;
}
Methods.....
}
Я создал FakeRepository‹>, который также наследуется от IRepository‹>
public class FakeRepository<TEntity> : IRepository<TEntity> where TEntity : class {
private FakeDataContext _context;
public FakeRepository() {
_context = new FakeDataContext();
}
public FakeRepository(FakeDataContext context) {
_context = context;
}
Methods....
}
Единственная разница между репозиторием и подделкой заключается в том, что вместо использования DBContext LinqToSQL я создал поддельный для целей тестирования.
Что я тогда могу сделать в своих модульных тестах:
ObjectFactory.Initialize(x => { x.For(typeof(Repository<>)).Use(typeof(FakeRepository<>)); });
Таким образом, мои тесты всегда будут запускаться с использованием в памяти fakedbcontext.
Однако я получаю ошибку типа плагина 104, и я не знаю, почему?