有这样的问题。有一个单例类,通过getInstance()方法获取单例类的实例,进一步保存在静态INSTANCE字段中。和private static Input INSTANCE = getInstance();
当我尝试这样做constructor.newInstance();时,它首先初始化静态字段,并执行getInstance(),在测试时不能调用,我只需要一个空实例。我想直接设置其中的字段,并调用它们的复杂getter。
有这样的问题。有一个单例类,通过getInstance()方法获取单例类的实例,进一步保存在静态INSTANCE字段中。和private static Input INSTANCE = getInstance();
当我尝试这样做constructor.newInstance();时,它首先初始化静态字段,并执行getInstance(),在测试时不能调用,我只需要一个空实例。我想直接设置其中的字段,并调用它们的复杂getter。
单例被认为是一种反模式,部分原因是它缺乏可测试性。
在测试方面,单例至少有2个问题:
要以某种方式测试您的类并保存其属性,您可以执行以下操作:
备选方案:使用依赖注入或 ServiceLocators。