Ho questo fagiolo nel mio config Spring Java:Come sovrascrivere un bean con scope per i test?
@Bean
@Scope(proxyMode=ScopedProxyMode.TARGET_CLASS, value=SpringScopes.DESKTOP)
public BirtSession birtSession() {
return new BirtSession();
}
Per i test, ho bisogno di un mock, senza un campo di applicazione (non v'è alcun margine "Desktop" nel test). Ma quando creo una configurazione per la mia prova che importa la configurazione di cui sopra e contiene:
@Bean
public BirtSession birtSession() {
return new MockSession();
}
ottengo un "desktop" fagiolo deriso ambito :-(
Come faccio Primavera "dimenticare" il @Scope
? annotazione
PS:. funziona quando io non uso @Import
e utilizzare copia incolla & ma io non voglio farlo
Che tipo di test stai scrivendo? Test unitario? –
Cosa dire dell'annotazione di 'birtSession()' con '@ Primary'? * Alcuni scope * 'DESKTOP' dovranno essere disponibili, ma l'autowiring sceglierà sempre il tuo bean primario. –
@JBNizet: Sì, è un test JUnit che utilizza il 'SpringJUnit4ClassRunner' –