好吧,我刚接到一个任务,我必须在一个带有私有(private)构造函数的类上执行单元测试。
现在,当所有方法都是非静态的时,我应该如何在不初始化类的情况下进行单元测试。
有什么方法可以对具有私有(private)构造函数的类进行单元测试(无需反射)?
最佳答案
如果您不能公开该类,您仍然可以通过以这种方式创建它的实例来轻松地测试它:
var anInstance = (YourPrivateClass)Activator.CreateInstance(typeof(YourPrivateClass), true);
这将为您提供一个您可以随后填充的类的实例。
另一个有用的测试位是如果你有内部方法(不是私有(private)的),你可以通过使内部对你的测试类可见来访问它们。您使用内部方法在类的 assemblyinfo.cs 中添加这一行:
[assembly: InternalsVisibleTo("YourSolution.Tests")]
关于具有私有(private)构造函数的 C# 单元测试类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15663983/