Тестирование: Как создать поддельный контекст объекта, используя модель TypeMock для EF4 - PullRequest
3 голосов
/ 17 августа 2011

Я использую EF4 в своем приложении и хочу создать контрольные примеры для методов DAL, которые обычно попадают в базу данных для получения данных. Я использую каркас Typemock для Mocking. Я хочу смоделировать вызов базы данных и только хочу проверить запросы. E.g.:

ObjectContext.Where(u => u.code == Code) 

Для этого мне нужно сделать Fake ObjectContext для моделей EF и заполнить некоторые фальшивые данные в Fake ObjectContext, чтобы мы могли выполнять наши запросы (LINQ) на fake ObjectContext. Пожалуйста, предложите, как я могу создать поддельный контекст объекта (используя платформу TypeMock) и заполнить данные в объектах.

Например, у меня есть следующий метод:

protected IObjectSet<T> CreateObjectSet<T>() where T : EntityBase 
{ 
    return _context.CreateObjectSet<T>(); 
}

И я создаю контрольный пример для макета _context, однако _context имеет значение null. Мой тестовый пример:

var fakeInMemoryBlogs = GetUsers();    
var fakeContext = Isolate.Fake.Instance<SecurityEntitiesUOW>(); 
var fakeGenericRepository = Isolate.Fake.Instance<GenericRepository>
    (Members.CallOriginal, ConstructorWillBe.Called, fakeContext); 
Isolate.WhenCalled(() => fakeContext.Context.CreateObjectSet<SecUser>()) 
    .WillReturnCollectionValuesOf(fakeInMemoryBlogs.AsQueryable());

1 Ответ

3 голосов
/ 17 августа 2011

Это спрашивали пару раз раньше. Поискал и нашел следующие ресурсы:

Знакомство с модульным тестированием Entity Framework с TypeMock Isolator

http://mosesofegypt.net/post/Introducing-Entity-Framework-Unit-Testing-with-TypeMock-Isolator.aspx

Абстрагирование ObjectContext с использованием шаблона репозитория

EF4 - возможно ли смоделировать ObjectContext для модульного тестирования?

Как смоделировать ObjectContext или ObjectQuery в Entity Framework?

Как смоделировать ObjectContext или ObjectQuery в Entity Framework?

...