Solución:
@Import
y @ContextConfiguration
son para diferentes casos de uso y no se pueden intercambiar.
los @Import
solo es útil para importar otros @Configuration
archivos y solo es útil (y afaik) y funcional en @Configuration
clases. Al poner el @Import
en una clase de prueba no será bueno ya que no será procesado.
@Configuration
@Import(PersistenceConfig.class)
public class MainConfig {}
Utilizando @Import
puede ser útil si, por ejemplo, ha desactivado el escaneo de componentes para @Configuration
clases o necesitas un @Configuration
class de un paquete no cubierto por su componente-scan.
Nota: También hay @ImportResource
que hace lo mismo para los archivos de configuración basados en XML más antiguos.
Lo contrario es válido para @ContextConfiguration
ya que solo es útil en las clases de prueba basadas en Spring (las pruebas se ejecutaron con el SpringRunner
para jUnit 4). Se utiliza para proporcionar a la prueba los parámetros de configuración para realizar la configuración de la prueba. Puede ser una colección de XML, javaconfig (o una combinación de los mismos).
@RunWith(SpringRunner.class)
@ContextConfiguration( {MainConfig.class, TestConfig.class})
public MyTest {}
También permite especificar qué usar para cargar esa configuración (entre otros).