2015-03-12 1 views
7

У меня есть класс ConfigurationProperties и вы хотите его проверить, используя junit. Но объект всегда null. Что может отсутствовать в следующем коде?Как проверить ConfigurationProperties весной с помощью JUnit?

@EnableAutoConfiguration 
@ComponentScan 
@EnableConfigurationProperties(MyProperties.class) 
public class AppConfig { 

} 

@Service 
public class MyService { 
    @Autowired 
    private MyProperties props; 

    public void run() { 
     props.getName(); 
    } 
} 

@Component 
@ConfigurationProperties(prefix = "my") 
public class MyProperties { 
    private String name; 
    //getter,setter 
} 

application.properties:

my.name=test 

тест:

@Configuration 
@ComponentScan(basePackageClasses = {MyService.class, MyProperties.class}, 
      includeFilters = @ComponentScan.Filter(value = {MyService.class, MyProperties.class}, 
      type = FilterType.ASSIGNABLE_TYPE), 
      lazyInit = true 
) 
@PropertySources(
     @PropertySource("application.properties") 
    ) 
class AppTest { 
    @Bean 
    public static PropertySourcesPlaceholderConfigurer propertiesResolver() { 
     return new PropertySourcesPlaceholderConfigurer(); 
    } 
} 

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = ApplicationConfigTest.class) 
public class MyTest extends AbstractJUnit4SpringContextTests { 
    @Autowired 
    private MyService service; 

    @Test 
    public void testService() { 
     service.run(); 
    } 
} 

ответ

9

Ниже будет загрузить его для вас:

@ContextConfiguration(classes = Application.class, initializers = ConfigFileApplicationContextInitializer.class)