Я пытаюсь модульного тестирования кода некоторые Active Directory, почти так же, как описано в этом вопросе:Дразнящий свойство «Свойства» из DirectoryEntry
Create an instance of DirectoryEntry for use in test
Принятый ответ предполагает реализацию обертку/адаптер для DirectoryEntry
класса, который у меня есть:
public interface IDirectoryEntry : IDisposable
{
PropertyCollection Properties { get; }
}
public class DirectoryEntryWrapper : DirectoryEntry, IDirectoryEntry
{
}
Проблема заключается в том, что "Properties" собственность на моем IDirectoryEntry
макете I s не инициализируется. Попытка установить макет, как это:
this._directoryEntryMock = new Mock<IDirectoryEntry>();
this._directoryEntryMock.Setup(m => m.Properties)
.Returns(new PropertyCollection());
Результатов в следующей ошибке:
типа «System.DirectoryServices.PropertyCollection» имеет никаких конструкторов не определены
Как я понимаю, эта ошибка возникает при попытке создать экземпляр класса только с внутренними конструкторами:
The type '...' has no constructors defined
Я попытался написать оболочку/адаптер для класса PropertyCollection
, но без публичного конструктора я не могу понять, как создавать или наследовать класс.
Итак, как я могу издеваться/настраивать «Свойства» на классе DirectoryEntry
для целей тестирования?