[英]Not able to use spring dependency injection across various classes for TestNG using java annotations(JSR 330 Standard Annotations)
我有一項服務,試圖在測試中跨各種類注入服務,但我將其實例作為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方法中的設置對象獲取hostUri時,我得到了NullPointerException。 因此,我無法將MyService bean注入Setup類。
為了使用注釋,您需要在bean XML配置文件中指定該行為。 像這樣:
<context:component-scan base-package="your.base.package"/>
<context:annotation-config/>
希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.