我正在为我写的一个类写一些JUnits。此类负责确保构建本地缓存(简单的并发映射缓存)。构建缓存的调用是在构造函数中;
public DBFactoryController(){
buildCache();
notifcation.startPushManager();
}
我的测试类中发生的是我创建了一个DBFactoryController的实例变量
private DBFactoryController controller = new DBFactoryController();
然而,根据我的阅读,为每个测试用例生成了一个新的测试类实例,这意味着每次测试都会重建我的缓存,这会减慢我的测试速度。
有没有办法可以构建这个,这样我的缓存只会构建一次?
由于
答案 0 :(得分:0)
最简单的可能是创建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机制可能有更优雅的解决方案,但我猜这是最简单的。