Java 如何初始化JUnit的缓存

Java 如何初始化JUnit的缓存,java,caching,junit,Java,Caching,Junit,我正在为我写的一堂课写一些JUnits。此类负责确保生成本地缓存(简单的并发映射缓存)。构建缓存的调用在构造函数中 public DBFactoryController(){ buildCache(); notifcation.startPushManager(); } 在我的测试类中,我创建了DBFactoryController的一个实例变量 private DBFactoryController controller = new DBFactoryController()

我正在为我写的一堂课写一些JUnits。此类负责确保生成本地缓存(简单的并发映射缓存)。构建缓存的调用在构造函数中

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机制可能有更优雅的解决方案,但我想这是最简单的。

如果您的控制器是无状态的,那么您可以在测试类中将其创建为静态字段。