【发布时间】:2016-05-11 12:52:38
【问题描述】:
我对如何执行这些测试有点困惑。我知道有PrivateObject 来测试私有类和PrivateType 来测试私有静态类,但是如何测试公共静态类的私有静态方法呢?
public static class Clients {
// CUT
private static List<string> GenerateAddresses(string AppPath) {
// CUT
}
}
在我的单元测试课中我尝试过
PrivateType testClients = new PrivateType(Clients);
但我得到了错误
'Clients' 是一种类型,在给定的上下文中无效
这个错误有点令人困惑,谷歌给我带来了完全不同的问题。我在PrivateType 中使用了错误的“客户”吗?或者考虑到Clients 是公开的,我应该以不同的方式进行测试吗?
【问题讨论】:
-
new PrivateType(typeof(Clients))? (旁注:你甚至应该直接测试私有成员吗?这会通过对象的接口和它的实现产生很多耦合,这应该与测试无关。) -
构造函数需要
System.Type的实例,而不是类型名称:new PrivateType(typeof(Clients)) -
向我们展示 PrivateType 的构造函数。它期待什么?你目前拥有的东西没有多大意义,这正是编译器告诉你的
-
谢谢@David 和 Dennis_E,这似乎很明显......现在 :)
标签: c# unit-testing