【发布时间】:2010-06-17 18:53:37
【问题描述】:
我的代码中需要一个单例。我用 Java 实现了它,它运行良好。我这样做的原因是为了确保在多个环境中,只有一个此类的实例。
但现在我想用单元测试在本地测试我的 Singleton 对象。出于这个原因,我需要模拟这个 Singleton 的另一个实例(来自另一个设备的对象)。那么是否有可能第二次实例化一个 Singleton 以用于测试目的,还是我必须模拟它?
我不确定,但我认为可以通过使用不同的类加载器来实现?
【问题讨论】:
-
嗯.. 名称排序表明必须只有一个实例。如果不能这样测试,我建议类的设计可能存在缺陷。
-
两次实例化单例不会是测试失败吗?对于单身人士来说,这是一个定义明确的错误行为......
-
这是应该像瘟疫一样避免单身人士的众多原因之一。
-
sry 不小心回滚了
-
究竟为什么您的测试需要实例化第二个单例?