Подделки - Шим частный конструктор для ответа (DirectoryServices)

Я пытаюсь подделать следующее:

DirectoryServices.AccountManagement.PrincipalSearcher.FindAll()

Проблема в том, что класс, возвращаемый из этого метода, имеет закрытый конструктор:

PrincipalSearchResult<Principal>

Так что я не могу принять обычный подход шиммала:

          ...
          ShimPrincipalSearcher shimSearcher = new ShimPrincipalSearcher();

          shimSearcher.FindAll = () => { return new PrincipalSearchResult<Principal>(); };
          ...

Кто-нибудь видел это раньше и нашел решение / подход для этого?

Я знаю, что здесь есть очень похожий вопрос:

Статический метод MS Fakes, который возвращает класс с помощью частного конструктора

Но принятый ответ, похоже, не работает для моего сценария - я подозреваю, потому что он специфичен для метода, рассматриваемого в этом вопросе.

Я хотел бы придерживаться Fakes / Shim, если это возможно - поскольку я использую его в других местах в своих модульных тестах - хотя я был бы счастлив попробовать альтернативные подходы (хотя я вряд ли получу одобрение на что-то вроде Typemock Isolator - как упомянуто в том другом посте - из-за стоимости)

У меня был некоторый успех с другими применениями прокладок - в том числе для других методов DirectoryServices - поэтому немного расстраивает то, что я застрял на чем-то подобном (что, я думаю, почти наверняка приведет к некоторой простой ошибке с моей стороны)

Любые указатели на это будут приветствоваться!

0 ответов

Другие вопросы по тегам