【发布时间】:2012-04-27 02:52:32
【问题描述】:
出于性能原因,我有一个启用了二级数据缓存的 JPA/Hibernate/Spring/Tomcat Web 应用程序。而且缓存做得很好!
我还有一个 Cucumber 测试套件,它将一些测试数据直接添加到应用程序的数据库中,然后执行一些 Selenium 步骤。当然它会失败,因为由于二级缓存,应用程序看不到更新。
我知道我可以为禁用缓存的测试进行特殊构建(通过传递一些用于 Maven 过滤或类似的布尔属性)但是有很多 @Cache 注释实体,因此禁用缓存会使应用程序失败,并出现“二级”异常缓存未启用”。
另一种方法是使用 ehcache 远程处理来清除缓存或将其配置为零对象生命周期或类似的。
我也可以仅使用应用程序 UI 创建测试数据,但这会给测试用例增加不必要的复杂性,因此我更喜欢在测试运行之前将它们写入数据库。
谁能分享他们启用二级数据缓存的集成测试应用程序的方法?
【问题讨论】:
标签: java hibernate caching jpa selenium