假设我正在使用包含类A和B的包p1。我无权访问包p1的实现。
现在,在我的应用程序中,我只想在任何时候只有一个A实例。
我在A类的应用程序中创建了一个单例类C.
样品:
public Class ClassC
{
private static readonly ClassA singletonObj = new ClassA();
private ClassC();
public static ClassA ClassC
{
get
{
return singletonObj;
}
}
}
如何对C类进行单元测试以确保为我的应用程序创建单个实例?
答案 0 :(得分:0)
如果你想要A级单身,那么你的上述代码是无关紧要的 你应该像这样编写A类:
public Class ClassA
{
private static Singleton instance;
private Singleton() {}
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
//Any other function & members related to ClassA
}
public Class ClassA
{
private static Singleton instance;
private Singleton() {}
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
//Any other function & members related to ClassA
}
为了测试单重,尝试在代码中创建几个ClassA实例。好的结果是,每次创建"新实例"时,你得到相同的实例,意思是 - 你可以有2个具有不同数据的实例 - 它们都将是指向同一个实例的指针。