【发布时间】:2011-10-04 11:54:03
【问题描述】:
我有一个具有这样结构的类:
private static Dictionary<Contract, IPriceHistoryManager> _historyManagers = new Dictionary<Contract, IPriceHistoryManager>();
让我们说 2 种方法,例如:
public void AddSth()
{
_historManagers.Add(new Contract(), new PriceHistoryManager());
}
public int CountDic()
{
return _historyManagers.Count();
}
问题: 运行单元测试时,无法“重置”字典,并且当我使用类的单独实例创建多个单元测试时,“CountDic”会给出不可预测的结果,我无法测试监听。
问题: 这通常被认为是一种“坏”的方法吗?如果是的话:如何做得更好/更可单元测试? 如果不是:如何最好地进行单元测试?
谢谢。
【问题讨论】:
-
为什么字典是静态的?
-
因为它在 WCF 服务中使用,我希望它的多个实例使用它..
-
静态字典有什么用?
-
你使用静态字典作为一种缓存?
-
@David 您能否通过创建 ServiceHost 实例并注入共享历史管理器的自定义 ServiceHostFactory 来解决使用它的多个实例的问题,那么您就不需要仅仅为了测试
标签: c# unit-testing static private-members