[英]C# test private static method of public static class
我对如何执行这些测试有些困惑。 我知道存在PrivateObject
测试私有类的PrivateType
和PrivateType
测试私有静态类的PrivateObject
的存在,但是我如何测试PUBLIC静态类的私有静态方法?
public static class Clients {
// CUT
private static List<string> GenerateAddresses(string AppPath) {
// CUT
}
}
在单元测试课上,我尝试了
PrivateType testClients = new PrivateType(Clients);
但我得到了错误
“客户”是一种类型,在给定的上下文中无效
该错误有点令人困惑,Google将我带到了完全不同的问题。 我在PrivateType
使用“客户端”错误吗? 还是鉴于Clients
是公开的,我应该以其他方式进行测试吗?
还是鉴于
Clients
是公开的,我应该以其他方式进行测试吗?
是: Clients
是您要测试的单元。 如果它不公开公开GenerateAddresses
,则它不是其表面API的一部分,并且从理论上讲,它只是在支持该类的内部。
在单元测试中,测试类的可观察行为-不必担心它在内部如何进行。
var testClients = new PrivateType(typeof(Clients));
PrivateType
需要Type对象而不是符号名称。
但是我宁愿建议您重新考虑您的测试策略。 通常不需要测试私有方法。 如果发现无法从公共方法中获得不错的代码覆盖率,则可能需要进行一些重构。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.