我正在尝试伪造以下内容:
DirectoryServices.AccountManagement.PrincipalSearcher.FindAll()
问题是从此方法返回的类具有私有构造函数:
PrincipalSearchResult<Principal>
所以我不能采用通常的匀场方法:
...
ShimPrincipalSearcher shimSearcher = new ShimPrincipalSearcher();
shimSearcher.FindAll = () => { return new PrincipalSearchResult<Principal>(); };
...
有人以前见过这个,并找到了解决方案/方法吗?
我知道这里有一个非常类似问题:
MS Fakes Static Method that Returns Class with Private Constructor
但是接受的答案似乎不适用于我的情况-我怀疑是因为它特定于该问题所涵盖的方法。
如果可能的话,我想坚持使用Fakes / Shim-因为我在单元测试的其他地方使用它-尽管我很乐于尝试其他方法 (尽管费用不高,但我不太可能获得Typemock Isolator之类的批准-如该其他帖子所述)
我在垫片的其他用途方面取得了一些成功-包括其他DirectoryServices方法的使用- 因此卡在这样的东西上有点令人沮丧(我想我几乎肯定会因为某种简单的错误而陷入困境)
欢迎对此提出任何建议!