Включить RabbitConfig в тесте - PullRequest
       8

Включить RabbitConfig в тесте

0 голосов
/ 14 октября 2019

Я хочу включить @RabbitListener при запуске интеграционного теста в приложении Spring Boot.

Когда я даю @EnableAutoConfiguration (exclude = {RabbitAutoConfiguration.class}), у меня возникает проблема, потому что bean RabbitConfig пытается быть создан. В этом классе у меня есть конфиг для кролика. Как я могу включить это? Может быть другой путь?

RabbitConfig


@Configuration
public class RabbitConfig implements RabbitListenerConfigurer {

    public static final String QUEUE_REPORTS = "report-queue";
    public static final String QUEUE_REPORTS_ERROR = "report-queue-error";

    @Bean
    Queue reportsQueue() {

        return QueueBuilder.durable(QUEUE_REPORTS)
                .build();
    }
    @Bean
    Queue reportsQueueError() {

        return QueueBuilder.durable(QUEUE_REPORTS_ERROR)
                .build();
    }



    @Bean
    public RabbitTemplate rabbitTemplate(final ConnectionFactory connectionFactory) {
        final RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
        rabbitTemplate.setMessageConverter(producerJackson2MessageConverter());
        return rabbitTemplate;
    }

    @Bean
    public Jackson2JsonMessageConverter producerJackson2MessageConverter() {
        return new Jackson2JsonMessageConverter();
    }

    @Bean
    MessageHandlerMethodFactory messageHandlerMethodFactory() {
        DefaultMessageHandlerMethodFactory messageHandlerMethodFactory = new DefaultMessageHandlerMethodFactory();
        messageHandlerMethodFactory.setMessageConverter(consumerJackson2MessageConverter());
        return messageHandlerMethodFactory;
    }

    @Override
    public void configureRabbitListeners(RabbitListenerEndpointRegistrar registrar) {
        registrar.setMessageHandlerMethodFactory(messageHandlerMethodFactory());
    }

    @Bean
    public MappingJackson2MessageConverter consumerJackson2MessageConverter() {
        return new MappingJackson2MessageConverter();
    }

}

Тестовый класс

@RunWith(SpringRunner.class)
@SpringBootTest
@EnableAutoConfiguration(exclude= {RabbitAutoConfiguration.class})
public class rBfgDailyTest {

    @Autowired
    IStoreProcedureService iStoreProcedureService;


    @Test
    public void doNothing() throws NoSuchFieldException, IllegalAccessException, SQLException {
        List<BFGDailyPojo> test = iStoreProcedureService.rBfgDaily("test", new Date(), new Date(), new Date(), 10000);
        System.out.println(test.size());
    }
}

...