无法使用java注释在TestNG的各个类中使用Spring依赖注入(JSR 330标准注释)

时间:2015-01-31 00:30:41

标签: java spring dependency-injection jsr330

我有一个服务,我试图在我的测试中注入各种类,但我的实例为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。

1 个答案:

答案 0 :(得分:0)

要使用注释,您需要在beans XML配置文件中指定该行为。像这样:

<context:component-scan base-package="your.base.package"/>
<context:annotation-config/>

希望它有所帮助!