2016-05-13 11 views
1

Ich habe eine benutzerdefinierte Annotationsklasse wie folgt.JUnit Mocking Bean, das @autowired mit benutzerdefinierter Annotation ist

@Target({ TYPE, METHOD, PARAMETER, FIELD }) 
@Retention(RUNTIME) 
@Qualifier 
public @interface Message 
{ 
    Dest value(); 

    public static enum Target { DEFAULT, TEST } 
} 

Ich benutze diese Anmerkung in der folgenden Weise.

Nicht sicher, wie Sie eine Bean von ProcessorBean erstellen und Producer injizieren.

@Bean(name="DEFAULT") 
     public Producer<Object, Object> producer() { 
      return mock(Producer.class); 
     } 

Ich habe versucht, das oben genannte und es ist Abhängigkeit Abhängigkeit Fehler.

Danke

+0

Was ist der Zweck Ihrer '@ Message' Annotation? Was möchten Sie erreichen, wenn Sie ein Feld mit Ihrer Anmerkung "@ Message" annotieren? – Jesper

+0

Hallo, das ist aus einem anderen Grund, und ich habe es gerade umbenannt, um es zu veröffentlichen. Nur versuchen zu verstehen, ob dies für Unit-Tests injiziert werden kann. – user1578872

Antwort

0

Ich fand die Lösung selbst. Hoffe, das wird für andere hilfreich sein.

@Message(Message.Target.DEFAULT) 
     @Bean 
    public Producer<Object, Object> producer() { 
     return mock(Producer.class); 
    } 
Verwandte Themen