2011-12-27 13 views
22

Estoy probando la configuración java de primavera. Durante el uso de archivos XML de configuración mis pruebas unitarias utilizar para tener la siguienteprueba de unidad de configuración Spring Java

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(....) 

Si estoy utilizando la configuración de Java, ¿Cómo lo hago. o debo utilizar

ApplicationContext appConfig = new AnnotationConfigApplicationContext(SimpleConfiguration.class); 

Respuesta

29

A partir de Spring 3.1, @ContextConfiguration ahora tiene soporte completo para las clases @Configuration; no se requiere XML

Ver http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#d0e1392

O más específicamente, http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#testcontext-ctx-management-javaconfig, que muestra el siguiente fragmento de código:

@RunWith(SpringJUnit4ClassRunner.class) 
// ApplicationContext will be loaded from AppConfig and TestConfig 
@ContextConfiguration(classes={AppConfig.class, TestConfig.class}) 
public class MyTest { 
    // class body... 
} 

AppConfig y TestConfig son @Configuration clases (aka clases "de configuración de Java" en los comentarios de @ user373201)

+0

No veo la relevancia para mi pregunta. Quería saber cómo usar @ContextConfiguration al usar las clases de configuración de Java – user373201

+0

Muchas gracias. – user373201

+0

¿Es posible usar las mismas clases de configuración de Java que se usan en el código fuente, o deberían duplicarse los archivos y colocarse en la carpeta de prueba? – user16655

3

@ContextConfiguration se utiliza para cargar las configuraciones de la primavera, mientras que usted está trabajando con casos de prueba. Si no lo necesita, podría usar ClassPathXmlApplicationContext para cargar la configuración de Spring.

Utilice constructor que adopta ubicaciones de configuración como String array.

AnnotationConfigApplicationContext se utiliza para detectar automáticamente las clases anotadas. No creo que pueda usarse para cargar archivos de configuración. Es similar al contexto: componente-scan

SpringJUnit4ClassRunner proporciona soporte de prueba de primavera para Junit a través de anotaciones como @Test.

+0

puede dar un ejemplo de cómo puedo usar @ContextConfiguration con las clases de configuración de Java – user373201

+0

¿Qué quiere decir exactamente con las clases de configuración de Java? Por favor proporcione una muestra. –

+0

He actualizado mi respuesta original para aclarar más. –