JUnit Mocking Bean,它是带有用户定义的Annotation的@autowired



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

@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);
        }

我尝试了上面的一个,它抛出了依赖性错误。

感谢

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

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

相关内容

  • 没有找到相关文章

最新更新