2015-10-12 4 views
-1

Я нашел множество примеров с StreamReader, но как объединить внутренний конструктор? Мне нужно создать подделки какого-то публичного класса с внутренним конструктором, чтобы проверить мой код.Как изолировать (объезд) внутренний конструктор с помощью Microsoft Fakes shim?

Представьте меня

public class ChangesPostProcessor 
{ 
    public void Process(IEnumerable<DbEntityEntry> changes) 
    { 
    ... 
    } 
} 

В данном случае мне нужно поддельная набор DbEntityEntry, чтобы иметь возможность издеваться над его многочисленными методами (работа с БД) и проверить мою логику изоляции.

+0

Вам необходимо применять интерфейс DbEntityEntry и внедрить его вместо этого. Это позволит вам ввести макет IDbEntityEntry. –

+0

DbEntityEntry - это класс из Entity Framework, я ничего не могу применить к нему! – amarax

+0

Вы можете обернуть его и применить интерфейс к обертке. –

ответ

0

я, наконец, пошел с оберточным подходом и реализован интерфейс IDbEntityEnty с моим собственным классом с общественным конструктору, содержащим DbEntityEntry внутри. Это позволяет мне тест, но заставил меня переписать огромное количество кода, чтобы изменить зависимости от DbEntityEntry к IDbEntityEntry.