我们在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());
答案 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);