在Try / Catch中,带有带有ResorceResolver的AEMContext问题的AEM Junit4

问题描述

在广告AEM项目中为java类创建Junit的过程中,我们发现在尝试捕获中使用AEMcontext(https://wcm.io/)创建的ResorceResolver存在问题。

var config = new HikariConfig();
...
config.setAllowPoolSuspension(true);

当我们使用初始化

try (ResourceResolver resourceResolver = request.getResourceResolver()){
    .....
} catch (RepositoryException e) {
    LOGGER.error(ERROR,e.getMessage(),e);
    writeResponse(response,HttpURLConnection.HTTP_BAD_REQUEST,"KO");
} 

代码正常工作。 但是当我们使用这个

@Rule
    public final AemContext aemContext = new AemContext(ResourceResolverType.JCR_MOCK); 

因为我们需要访问内部资源(例如QueryManager,Session ...)。 我们对try Catch操作的ResourceResolver的自动关闭存在问题。 我们已经完成了一个临时修复,即创建了finally块,并使用Mockito.Spy使用do nothing模拟了关闭资源解析器的方法

经过长时间的解释,问题是: 是否存在另一种模拟或管理方式? 可能的解决方案是Junit版本的升级还是powermockito的集成?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)