Wir haben große Anwendung im Frühling 3 geschrieben. Ich muss JUnit Test überprüfen Verhalten eines Dienstes schreiben. Es ist keine Einheit, sondern Teil eines Systems. Es gibt einige Dienste und Repositories, die zusammen arbeiten -> viele injizierte Bohnen drin. Die App nutzt auch Aspekte.JUnit Test im Frühjahr - überschreiben und ignorieren Bohnen aus der Anwendung andere Konfigurationsklassen
Meine Frage ist. Wie man Config und Beans in diesem Fall von Tests verwaltet? Ich muss in App-Konflikten definierte Beans verwenden und in Beans nur Beans definieren, die Persistenz verwenden, um mit einer eingebetteten Datenbank zu arbeiten. Also muss ich Beans von src verwenden, wie sie definiert sind und überschreiben nur einige verursachende Probleme (Persistance Beans, Beans mit Webservices, ...) Im Testpaket habe ich Konfig-Klasse-Definition-Beans für persistance gemacht, mit Datenquelle für hsql. Aber ich weiß nicht was als nächstes. Ich habe versucht, Test-config-Klasse mit annotieren:
@Configuration
@EnableAspectJAutoProxy
@EnableTransactionManagement(mode = AdviceMode.ASPECTJ, proxyTargetClass = true)
@ComponentScan(basePackages = "com.example.our.app")
public class MyTestConfig implements TransactionManagementConfigurer {
zu scannen gesamte Anwendung und verwenden Konfiguration von Bohnen aus src Ordner. Dies führt jedoch auch dazu, dass Konfigurationen aus anderen Tests Probleme verursachen. Ist das Ganze eine gute Strategie oder nicht? Was nun - Verwenden Sie excludeFilters, um andere Testkonfigurationen zu entfernen? Oder ist diese Strategie ganz schlecht?
dank
Ja guter Punkt außer Kraft setzen, aber Sie müssen um die Konfiguration von applicationContext.xml nach Java zu verschieben – vsingh