在AEM代码库的WCM.IO junit测试框架中将QueryBuilder作为NULL

时间:2017-07-26 11:20:38

标签: junit aem

我们在WCM.IO junit实现中将QueryBuilder设为NULL

QueryBuilder querybuilder = getSlingScriptHelper().getService(QueryBuilder.class);
Query query = querybuilder.createQuery(PredicateGroup.create(queryMap), session);

当我们通过wcm.io实现编写Junit Test类时,上面的“querybuilder”将变为NULL。

我们使用wcm.io方法在wcm.io junit类中注册QueryBuilder服务。我们使用的方法:

context.registerService(QueryBuilder.class, new QueryBuilderImpl()); 
context.registerInjectActivateService(new QueryBuilderImpl());

1 个答案:

答案 0 :(得分:0)

尝试使用以下方法模拟QueryBuilder:

QueryBuilder qb= mock(QueryBuilder.class);
TestClass obj = new TestClass(){
    @Override
    public SlingScriptHelper getSlingScriptHelper() {
        return slingScriptHelper;
    };
};

然后使用它:

 when(carouselComponent.getSlingScriptHelper().getService(QueryBuilder.class)).thenReturn(qb);