Salve sto cercando di così casi di test JUnit primavera ... e ho bisogno di mio contesto piena applicazione da caricare. Tuttavia, il test di junit non inizializza il contesto completo dell'applicazione. ClassePrimavera JUnit test non caricando pieno contesto di applicazione
prova:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class MongoDbRepositoryTest {
@Value("${spring.datasource.url}")
private String databaseUrl;
@Inject
private ApplicationContext appContext;
@Test
public void testCRUD() {
System.out.println("spring.datasource.url:" + databaseUrl);
showBeansIntialised();
assertEquals(1, 1);
}
private void showBeansIntialised() {
System.out.println("BEEEAAANSSSS");
for (String beanName : appContext.getBeanDefinitionNames()) {
System.out.println(beanName);
}
}
uscita:
spring.datasource.url:${spring.datasource.url}
BEEEAAANSSSS
org.springframework.context.annotation.internalConfigurationAnnotationProcessor
org.springframework.context.annotation.internalAutowiredAnnotationProcessor
org.springframework.context.annotation.internalRequiredAnnotationProcessor
org.springframework.context.annotation.internalCommonAnnotationProcessor
org.springframework.context.annotation.internalPersistenceAnnotationProcessor
org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor
org.springframework.context.annotation.ConfigurationClassPostProcessor.enhancedConfigurationProcessor
Applicazione principale Classe NOTE:
@ComponentScan(basePackages = "com.test")
@EnableAutoConfiguration(exclude = { MetricFilterAutoConfiguration.class, MetricRepositoryAutoConfiguration.class })
@EnableMongoRepositories("com.test.repository.mongodb")
@EnableJpaRepositories("com.test.repository.jpa")
@Profile(Constants.SPRING_PROFILE_DEVELOPMENT)
public class Application { ...
Quindi si deve eseguire la scansione di tutto il fagiolo di primavera nel pacchetto e TestCom caricarli anche nel contesto dell'applicazione per la prova di Junit. Ma dall'uscita dei fagioli initalised non sembra farlo.
Per prima cosa, la classe di applicazione è attiva solo per un profilo che non si sta configurando per essere attivi nel test. – Steve
Grazie Steve Noted. –