我有一个服务,我试图在我的测试中注入各种类,但我的实例为null。
我的配置界面:
MyService.java
public interface MyService {
public String getHostUri();
}
此接口的实现类: MyServiceImpl.java
public class MyServiceImpl implements MyService {
private static final String BASE_HOST_URI_CONFIG = "localhost:4444";
@Override
public String getHostUri() {
return BASE_HOST_URI_CONFIG;
}
我的Spring配置类包含bean:
@Configuration
public class AutomationSpringConfig {
@Bean
public MyService getMyService(){
return new MyServiceImpl();
}
}
我的testNG课程:
@ContextConfiguration(classes=AutomationSpringConfig.class ,loader =AnnotationConfigContextLoader.class)
public class BasicAutomatedTest extends AbstractTestNGSpringContextTests {
private static final Logger LOGGER = Logger.getLogger(BasicAutomatedTest.class);
@Inject
private MyService myService;
@Test
public void basicTest {
Setup setup = new Setup();
LOGGER.info(myService.getHostUri());
LOGGER.info(setup.myService.getHostUri());
}
}
我无法接受注射的助手课程:
public class Setup {
@Inject
public MyService myService;
}
因此,当我尝试通过BasicAutomatedTest的basicTest方法中的setup对象获取hostUri时,我得到一个NullPointerException。 所以我无法在Setup类中注入MyService bean。
答案 0 :(得分:0)
要使用注释,您需要在beans XML配置文件中指定该行为。像这样:
<context:component-scan base-package="your.base.package"/>
<context:annotation-config/>
希望它有所帮助!