如何初始化JUnit的缓存

时间:2014-08-26 16:26:23

标签: java caching junit

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

public DBFactoryController(){
    buildCache();
    notifcation.startPushManager();
}

我的测试类中发生的是我创建了一个DBFactoryController的实例变量

private DBFactoryController controller = new DBFactoryController();

然而,根据我的阅读,为每个测试用例生成了一个新的测试类实例,这意味着每次测试都会重建我的缓存,这会减慢我的测试速度。

有没有办法可以构建这个,这样我的缓存只会构建一次?

由于

1 个答案:

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