Я хочу включить @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());
}
}