Java 如何初始化JUnit的缓存
我正在为我写的一堂课写一些JUnits。此类负责确保生成本地缓存(简单的并发映射缓存)。构建缓存的调用在构造函数中Java 如何初始化JUnit的缓存,java,caching,junit,Java,Caching,Junit,我正在为我写的一堂课写一些JUnits。此类负责确保生成本地缓存(简单的并发映射缓存)。构建缓存的调用在构造函数中 public DBFactoryController(){ buildCache(); notifcation.startPushManager(); } 在我的测试类中,我创建了DBFactoryController的一个实例变量 private DBFactoryController controller = new DBFactoryController()
public DBFactoryController(){
buildCache();
notifcation.startPushManager();
}
在我的测试类中,我创建了DBFactoryController的一个实例变量
private DBFactoryController controller = new DBFactoryController();
然而,从我读到的内容来看,每个测试用例都会生成一个新的测试类实例,这意味着每个测试都会重新生成缓存,这会减慢测试的速度
有没有一种方法可以使我的缓存只构建一次
谢谢最简单的方法可能是创建DBFactoryController的静态实例:
class DBFactoryController {
private static DBFactoryController instance = null;
public DBFactoryController getInstance() {
if (instance == null) {
instance = new DBFactoryController();
}
return instance;
}
public DBFactoryController() {
buildCache();
notifcation.startPushManager();
}
}
然后可以在测试用例中初始化DBFactoryController实例,如下所示:
private DBFactoryController controller = DBFactoryController.getInstance();
使用JUnit机制可能有更优雅的解决方案,但我想这是最简单的。如果您的控制器是无状态的,那么您可以在测试类中将其创建为静态字段。