在spring-boot测试期间全局设置@Autowired(required = false)

时间:2016-05-09 09:36:23

标签: spring spring-boot spring-test

我无法获得经典的XML配置

<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor">
        <property name="requiredParameterValue" value="false" />
    </bean>

在spring-boot测试中工作。我尝试过等效的Java Style

@Bean
    public AutowiredAnnotationBeanPostProcessor annotation() {
        AutowiredAnnotationBeanPostProcessor annotation = new AutowiredAnnotationBeanPostProcessor();
        annotation.setRequiredParameterValue(false);
        return annotation;
}

也无济于事。

我只是想找到一个解决方案来挑选我需要进行单元测试的豆子。

这是我在测试中使用的代码:

@Rollback
@SpringApplicationConfiguration({PackageServiceTestConfiguration.class, DatabaseConfiguration.class, MybatisConfiguration.class})
@ActiveProfiles("test")
public class PackageServiceTest extends AbstractTransactionalTestNGSpringContextTests {...}

PackageServiceTestConfiguration.class的内容(数据库和mybatis是应用程序本身的配置部分,我需要执行测试

@Configuration 
@ComponentScan(basePackages = "com.project.api.permission.service",
    includeFilters = @ComponentScan.Filter(Service.class))
@ImportResource("classpath:testContext.xml")
public class PackageServiceTestConfiguration {}

testContext.xml包含一些测试装置和失败的AutowiredAnnotationBeanPostProcessor配置

感谢@ComponentScan我可以过滤到要配置哪个组件的软件包,但是这仍然不如XML那样方便,我可以用一个内核实际定义我需要的每个bean。

我仍然需要在全局范围内不需要@Autowired组件进行测试,我无法找到实现此目的的方法。

0 个答案:

没有答案