【发布时间】:2010-07-30 23:10:34
【问题描述】:
任何人都可以指导我测试通过公共方法修改的类中的私有字段的建议方法。我读过很多人建议不建议测试私有成员,因为它们是实现的内部成员,但是这种情况似乎与大多数其他答案不同。
我正在考虑保护私有字段并创建一个公开该字段的测试子类,但是如果我无法修改该类的内部结构怎么办?
在下面的示例代码中,要测试的私有成员是 _values,它是一个只写集合,通过 AddValue() 接收新值。
public class Sample
{
private Dictionary<string, string> _values;
private DateTime _created;
public Sample()
{
_values = new Dictionary<string, string>();
_created = DateTime.Now;
}
public void AddValue(string key, string value)
{
_values.Add(key, value);
}
}
【问题讨论】:
-
这个例子有什么“不同”?该类提供了哪些您需要测试的功能?
-
@Rex 我不确定它是否不同,我认为它“似乎”不同。在这种情况下,内部元素只是一个存储区域。我想测试公共方法是否正常工作,但是唯一的方法是检查私有字段。 (真正的类在 AddValue 方法中会有更复杂的逻辑)
标签: c# .net unit-testing