使用Mockito进行单元测试的模拟KafkaAvroDeserializer

tgabmvqs  于 2023-01-25  发布在  Apache
关注(0)|答案(1)|浏览(148)

我正在尝试对使用KafkaAvroDeserializer反序列化对象的类进行单元测试。我希望模拟KafkaAvroDeserializer,以便可以测试业务逻辑。但是,当我尝试模拟KafkaAvroDeserializer时,收到以下错误:
基础异常:org.mockito.exceptions.base.MockitoException:无法修改所有类[类io.confluent.Kafka.序列化程序.抽象KafkaAvroDeserializer,接口org.apache.kafka.common.序列化程序.反序列化程序,接口java.io.可关闭的,类io.confluent.kafka.序列化程序.KafkaAvroDeserializer,类io.confluent.kafka.序列化程序.抽象KafkaSchemaSerDe,接口java.lang.可自动关闭的]
org.mockito.exceptions.base.MockitoException:Mockito无法模拟此类:类io.confluent.kafka.serializers.序列化程序.
Mockito版本:4.8.0 JDK:8并尝试了11。
任何帮助都很感激。谢谢。

j9per5c4

j9per5c41#

与其嘲笑KafkaAvroDeserializer,不如使用MockSchemaRegistry
你可以通过给反序列化器提供下面的配置schema.registry.url=mock://deserializer-test来实现,这样你仍然在使用SR,但是它是内存中的,所以完全是单元可测试的。
比尔·HTH

相关问题