我正在使用Java和Mockito來模擬一些單元測試的方法。我想在下面的代碼中嘲笑生產者,這樣我就可以測試拋出異常時發送的日誌消息。我試圖嘲笑未來,但是我得到了future.get()方法不能被嘲笑的錯誤,並且類是final的,不能被嘲笑。任何幫助將不勝感激。模擬一種返回未來以拋出異常的方法
以下示例中的生產者爲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不能拋出發送方法可能拋出的兩種類型的異常(InterruptedException)之一。 – annedroiid
它允許您指定RuntimeException類型的異常,這是InterruptedException的擴展 –