AEM 6.3,wcm.io:模拟 LiveRelationshipManager

AEM 6.3, wcm.io: mocking LiveRelationshipManager

我想测试一个本身引用 LiveRelationshipManager 的服务:

@Reference
private LiveRelationshipManager liveRelationshipManager;

LiveRelationshipManager 的实现是隐藏的,我只有api。我如何在我的 aemContext 中注册它,例如我自己的 LanaguageService:

aemContext.registerInjectActivateService(new LanguageService());

我找到的一个解决方案是自己创建一个模拟 class:

@Component(service = LiveRelationshipManager.class)
public class MockLiveRelationshipManager implements LiveRelationshipManager {

但是如何防止它在我的实际应用程序中使用并且只在我的单元测试中使用?或者有更好的方法吗?

提前致谢!

如果您只想在测试中使用模拟 class,您应该而不是@Component 注释它。 只需创建模拟实现,然后使用

context.registerService(LiveRelationshipManager.class, new MockLiveRelationshipManager())

将其添加到您的上下文中。