Unit testing 在没有公共构造函数的情况下,如何进行单元测试?

Unit testing 在没有公共构造函数的情况下,如何进行单元测试?,unit-testing,moq,Unit Testing,Moq,我为自己编写了一个方便的小扩展方法,用于目录服务——只需将NT域与用户ID放在一起,并在传递它们之前连接它们: 公共静态IEnumerable NtUserIdsthis ResultPropertyCollection coll { var domains=coll[ntDomain].Cast; var id=coll[ntUserID].Cast; 返回domains.Zipids,domain,id=>${domain}\\\{id}; } 我想对它进行单元测试,但我很烦

我为自己编写了一个方便的小扩展方法,用于目录服务——只需将NT域与用户ID放在一起,并在传递它们之前连接它们:

公共静态IEnumerable NtUserIdsthis ResultPropertyCollection coll { var domains=coll[ntDomain].Cast; var id=coll[ntUserID].Cast; 返回domains.Zipids,domain,id=>${domain}\\\{id}; } 我想对它进行单元测试,但我很烦恼——我无法创建ResultPropertyCollection,因为它没有公共构造函数。我本来打算删除它,但索引器返回一个ResultPropertyValueCollection,它也没有公共构造函数。

ResultPropertyCollection确实有一个

通过反射,您可以创建如下实例:

var ctor=typeofResultPropertyCollection.GetConstructorsBindingFlags.Instance | BindingFlags.NonPublic.First; var instance=ResultPropertyCollectionctor.Invokenull;
对不起,我不明白。您需要模拟的依赖项是什么?我需要创建一个单元测试创建一个ResultPropertyCollection并调用扩展方法来测试它的功能-但是我不能创建ResultPropertyCollection,因为没有公共构造函数。