首页 > 解决方案 > 如何不调用(spy)静态成员的方法(KafkaTemplate UT)

问题描述

我有课

public **abstract** class BaseClass<K, V> implements SomeService {

    private KafkaTemplate<K, V> kafkaTemplate;

    @Override
    public void init(Map<String, Object> params) {
        DefaultKafkaProducerFactory<K, V> defaultKafkaProducerFactory = new DefaultKafkaProducerFactory<>(params);
        kafkaTemplate = new KafkaTemplate<>(defaultKafkaProducerFactory);
    }

    public void send(Message message) { 
        ProducerRecord<K, V> record = new ProducerRecord<>("topic", "key", someObject);
        RecordMetadata recordMetadata = kafkaTemplate.send(record).get().getRecordMetadata();
    }
}

我的问题是如何测试这个类,我唯一​​想要的是检查 kafkaTemplate.send 是否发生了至少 1 次

我不想将嵌入式 Kafka 与 spring 一起使用(对于这个测试来说太难了)。如何初始化和监视而不是真正调用 KafkaTemplate 的方法?

标签: javaunit-testingapache-kafkaspring-kafka

解决方案


推荐阅读