问题描述
在广告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 (将#修改为@)