JUnit Mocking Bean,它是@autowired with userdefined Annotation

时间:2016-05-13 23:51:39

标签: spring junit mockito

我有一个用户定义的注释类,如下所示。

@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 :(得分:0)

我自己找到了解决方案。希望,这对其他人有用。

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