簡體   English   中英

無法使用Java注釋跨各種類對TestNG使用spring依賴項注入(JSR 330標准注釋)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM