私はJavaとMockitoを使って単体テストのいくつかの方法を模擬しています。例外がスローされたときに送信されるログメッセージをテストできるように、以下のコードでプロデューサを模擬したいと思います。私は未来を模倣しようとしましたが、future.get()メソッドを嘲笑することはできず、RecordMetadata
クラスは最終的なものであり、嘲笑されないというエラーが発生します。どんな助けでも大歓迎です。例外を投げる未来を返すメソッドを模倣する
下の例のプロデューサは、KafkaProducer
です。
public void send(Log log){
Future<RecordMetadata> future = producer.send(new ProducerRecord<(this.topic, record));
try {
RecordMetadata recordMetadata = send.get();
} catch (InterruptedException e) {
LOG.error("Sending the message to kafka was interrupted. "+e);
}
}
ありがとう、それはうまくいきました。 errorNextは、sendメソッドが投げることができる2つのタイプの例外(InterruptedException)のうちの1つをスローすることはできません。 – annedroiid
RuntimeException型の例外を指定することができます。これは、InterruptedExceptionが拡張するものです –