У меня есть такой шаблон для тестирования некоторых сущностей
@Component
public class TestEntityXListener extends TestAbstractConsumer<EntityX> {
@Override
@KafkaListener(id = "entity1Listener", topicPattern = "company.v1.cqrs.entityX", containerFactory = "kafkaListenerContainerFactory")
public void onMessage(final ConsumerRecord<MessageKey, GenericRecord> consumerRecord) {
log.info("XListener HashCode:"+System.identityHashCode(this));
super.onMessage(consumerRecord);
}
}
И, наконец, мои тесты сущностей выглядят так:
public class EntityXIntegrationTestIT extends AbstractIntegrationTestIT {
@Autowired private TestEntityXListener entityXListener;
@Test
public void doTest() throws InterruptedException {
log.info("XListener HashCode:"+System.identityHashCode(this.entityXListener));
//Execute service that produces Kafka events (logs show correct sending and consumption)
}
}
Когда я проверяю это в локальной системе (Win10), этот код пропускает зеленый и все инъекции слушателя имеют один и тот же identityHashcode.Но когда я делаю это в удаленном конвейере, кажется, что экземпляр слушателя, внедренный в тест, отличается от того, который обрабатывается при поступлении события