gpt4 book ai didi

java - 单元测试 OSGi 服务,该服务引用了另一个服务

转载 作者:行者123 更新时间:2023-12-01 06:09:43 25 4
gpt4 key购买 nike

我有以下服务方法,我正在进行 Junit 测试。 SUT 类具有对 ResourceResolverFactory 服务的 @Reference。当我启动 SUT 类时,resourceResolverFactory 始终为 null,这会导致在执行 try block 中的第一行时抛出 NullPointerException:ResourceResolver = resourceResolverFactory.getAdministrativeResourceResolver(null);

@Reference
ResourceResolverFactory resourceResolverFactory;

@Override
public PropertyStatusInfo getPropertyStatusInfo(String hotelCode,
String brandCode) {
LOGGER.info( "Class : " + this.getClass().getName()
+ " : Method : getPropertyStatusInfo() : [ENTER]");
LOGGER.debug( "Input Parameters : Hotel Code - "
+ hotelCode + " BrandCode - " + brandCode);
ResourceResolver resourceResolver;
Session session = null;
try {
resourceResolver = resourceResolverFactory.
getAdministrativeResourceResolver(null);
...
}
}

有什么建议吗?谢谢!

最佳答案

听起来工厂的实例没有被注入(inject)到您的测试代码中。您可以使用反射将 resourceResolverFactory 字段设置为某个值,value:

Field field = SUT.class.getDeclaredField("resourceResolverFactory");
field.setAccessible(true);
field.set(instanceOfSutClass, value);

来源:https://stackoverflow.com/a/19976626/3895897

关于java - 单元测试 OSGi 服务,该服务引用了另一个服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37106229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com