[英]Unit Test for Singleton Pattern?
假设我正在使用具有类A和B的软件包p1。我无权访问软件包p1的实现。
现在,在我的应用程序中,我随时都只需要一个A实例。
我在A类的应用程序中创建了一个Singleton类C。
样品:
public Class ClassC
{
private static readonly ClassA singletonObj = new ClassA();
private ClassC();
public static ClassA ClassC
{
get
{
return singletonObj;
}
}
}
如何对C类进行单元测试以确保为我的应用程序创建了一个实例?
如果您希望A类为单例,则上面的代码为irrelevent。
您应该这样编写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 }
为了测试单调,请尝试在您的代码中创建几个ClassA实例。 好的结果是,在每次创建“新实例”时,您都获得相同的实例,这意味着-您可以有2个实例,这些实例具有不合法的数据-它们全都是指向同一实例的指针。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.