具有私有(private)构造函数的 C# 单元测试类?

标签 c# .net unit-testing nunit

好吧,我刚接到一个任务,我必须在一个带有私有(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/

相关文章:

c# - 上传后和将其保存到数据库之前调整图像大小

.net - Log4Net 和 .NET 4.0

c# - Unity Container RegisterType<TFrom, TTo> 问题

c# - N 层架构事务处理

unit-testing - Eunit超时不起作用

c# - 为什么 XmlTypeAttribute.Namespace 不为根元素设置命名空间?

c# - NAudio WasapiLoopbackCapture ComException(0x88890003)

c# - Xamarin 应用程序在重新打开 NullReference 时崩溃

unit-testing - 在哪里可以找到大量用于单元测试的 YAML 文件?

javascript - 如何在另一个函数中模拟一个函数nodejs