1

我有一个服务,我试图在我的测试中注入各种类,但我得到它的实例为空。

我的配置界面:

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;
    }

我的带有 bean 的 Spring 配置类:

@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。所以我无法在 Setup 类中注入 MyService bean。

4

1 回答 1

0

为了使用注解,您需要在 bean XML 配置文件中指定该行为。像这样的东西:

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

希望能帮助到你!

于 2015-01-31T01:27:59.627 回答