Win*_*der 7 .net c# nunit unit-testing
好的,所以我得到了一个任务,我必须在一个私有构造函数的类上进行单元测试.
现在,如果所有方法都是非静态的,我怎么想在没有初始化类的情况下进行单元测试.
有没有办法我可以在一个私有构造函数的类上进行单元测试(没有反射)?
小智 13
如果你不能公开这个类,你仍然可以通过这种方式创建一个实例来轻松测试它:
var anInstance = (YourPrivateClass)Activator.CreateInstance(typeof(YourPrivateClass), true);
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个您可以填充的类的实例.
另一个有用的测试位是,如果您有内部方法(非私有),您可以通过使测试类可见内部来访问它们.您可以使用内部方法在类的assemblyinfo.cs中添加此行:
[assembly: InternalsVisibleTo("YourSolution.Tests")]
Run Code Online (Sandbox Code Playgroud)
如果这个类有一个私有构造函数,这个是公开使用的吗?如果没有,最好不要进行单元测试.如果是这种情况,那么公共代码应该通过调用它来测试这段代码.
单元测试用于测试公众使用的内容 - 例如,通过在应用层之间连接代码.接受输入,我想要这个输出.这就是单元测试的真正含义.单元测试并不关心实际方法中的内容.只要它返回你想要的,执行所需的动作,你就有一个通行证.
归档时间: |
|
查看次数: |
6053 次 |
最近记录: |