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

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

DirectoryServices.AccountManagement.PrincipalSearcher.FindAll()

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

PrincipalSearchResult<Principal>

Так что я не могуВозьмите обычный метод шим:

          ...
          ShimPrincipalSearcher shimSearcher = new ShimPrincipalSearcher();

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

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

Мне известно, что очень подобный вопрос здесь:

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

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

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

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

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

...