Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Mockito模拟Java Azure EventHubProducerClient的最佳方法是什么?_Java_Azure_Mocking_Mockito_Azure Eventhub - Fatal编程技术网

用Mockito模拟Java Azure EventHubProducerClient的最佳方法是什么?

用Mockito模拟Java Azure EventHubProducerClient的最佳方法是什么?,java,azure,mocking,mockito,azure-eventhub,Java,Azure,Mocking,Mockito,Azure Eventhub,我的Java Azure事件中心客户端实现使用 <groupId>com.azure</groupId> <artifactId>azure-messaging-eventhubs</artifactId> <version>5.0.3</version> 嘲笑制作人的作品 @Mock EventHubProducerClient producer; 但是 投掷 org.mockito.exceptions.base.M

我的Java Azure事件中心客户端实现使用

<groupId>com.azure</groupId>
<artifactId>azure-messaging-eventhubs</artifactId>
<version>5.0.3</version>
嘲笑制作人的作品

@Mock
EventHubProducerClient producer;
但是

投掷

org.mockito.exceptions.base.MockitoException:无法模拟/间谍类 com.azure.messaging.eventhubs.EventDataBatch


实例化EventDataBatch没有简单的方法。构造函数需要工作连接。

您不能模拟
com.azure.messaging.eventhubs.EventDataBatch,因为它是最终类。默认情况下,Mockito不允许模拟最终类

可以通过使用扩展来更改此行为。见:

在Mockito可用于模拟最终类和方法之前,需要对其进行配置

我们需要在项目的src/test/resources/mockito extensions目录org.mockito.plugins.MockMaker中添加一个文本文件,并添加一行文本:

mock-maker-inline
Mockito在加载时检查扩展目录中的配置文件。此文件支持模拟最终方法和类

@Mock
EventDataBatch dataBatch;
...
doReturn(dataBatch).when(producer).createBatch();
mock-maker-inline