2016-05-13 8 views
1

私はユーザー定義の注釈クラスを次のように持っています。JUnitユーザー定義の注釈付きオートブロッキング

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

    public static enum Target { DEFAULT, TEST } 
} 

このアノテーションは、次のように使用します。

@Component 
public class ProcessorBean implements Processor 
{ 

    @Autowired @Message(Message.Target.DEFAULT) Producer<Object, Object> messageProducer; 

    @Autowired 
    MessageConfig messageConfig; 

ProcessorBeanのBeanを作成してProducerを挿入する方法がわかりません。

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

私は上記の1つを試して、依存性エラーを投げています。

ありがとうございました

+0

あなたの '@ Message'アノテーションの目的は何ですか? '@ Message'アノテーションでフィールドに注釈を付けると、何を達成したいですか? – Jesper

+0

こんにちは、これは他の理由によるものですが、私は掲示の目的で名前を変更しました。これが単体テストのために注入できるかどうかを理解しようとしています。 – user1578872

答えて

0

解決策は自分で見つかりました。希望、これは他の人に役立つでしょう。

@Message(Message.Target.DEFAULT) 
     @Bean 
    public Producer<Object, Object> producer() { 
     return mock(Producer.class); 
    } 
関連する問題