2017-03-15 3 views
0

Ich habe eine Feder-Boot-Anwendung, die eine der Komponenten mit db verbindet. Ich möchte vermeiden, dass es während der Tests geladen wird.Wie kann man bestimmte Komponenten ausschließen, die in der Spring-Boot-Anwendung mit @component geladen wurden?

Ich verwende unten Vorlage zum Testen. Ist es auch möglich, das Laden bestimmter Komponenten aus der Haupt-Springboot-Klasse (MyApp.class) auszuschließen?

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(MyApp.class) 
public class MyTest { 
    // ...Hitting some rest endpoint to extract data 
} 

Vielen Dank im Voraus!

Antwort

1

Sie Angenommen werden mit JUnit:

@Component 
@ConditionalOnMissingClass({"org.junit.Test"}) 
public class SomeComponent { 
} 

Oder, wenn Sie ein Federprofil für Tests genannt test aktivieren:

@Component 
@Profile("!test") 
public class SomeComponent { 
} 

Beachten Sie, dass die später ein Frühling ist eher als feder Boot Lösung

+0

Danke für die Antwort! Mein schlechtes Ich war nicht spezifisch für die Frage, tatsächlich verwende ich unter Vorlage zum Testen. Ist es auch möglich, das Laden bestimmter Komponenten aus der Haupt-Springboot-Klasse (MyApp.class) auszuschließen? @RunWith (SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration (MyApp.class) public class MyTest { // ... Endpunkt etwas Ruhe Schlagen zu extrahieren Daten } –

Verwandte Themen