Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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
Nest 单元测试Elasticsearch项目的内存连接_Nest_<img Src="//i.stack.imgur.com/A3TTx.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch Net - Fatal编程技术网 elasticsearch-net,Nest,elasticsearch Net" /> elasticsearch-net,Nest,elasticsearch Net" />

Nest 单元测试Elasticsearch项目的内存连接

Nest 单元测试Elasticsearch项目的内存连接,nest,elasticsearch-net,Nest,elasticsearch Net,使用InMemoryConnection类对我们的Elasticsearch项目进行单元测试是一种好的做法吗 这个类被用于单元测试的实际源代码中。但是我问这个问题的原因是因为它来自于HttpConnection,我不太确定它是否打开了任何HTTP连接。我们的单元测试将转到构建服务器,因此我希望避免这种情况。谢谢你的帮助。是的 如果您查看MemoryConnection中的实现,您将看到它覆盖和(负责实际执行HTTP请求的HttpConnection方法),只返回一个伪ElasticsearchR

使用
InMemoryConnection
类对我们的Elasticsearch项目进行单元测试是一种好的做法吗

这个类被用于单元测试的实际源代码中。但是我问这个问题的原因是因为它来自于
HttpConnection
,我不太确定它是否打开了任何HTTP连接。我们的单元测试将转到构建服务器,因此我希望避免这种情况。谢谢你的帮助。

是的


如果您查看MemoryConnection中
的实现,您将看到它覆盖和(负责实际执行HTTP请求的
HttpConnection
方法),只返回一个伪
ElasticsearchResponse
。没有打开HTTP连接,也没有发出任何请求,因此您可以在单元测试中安全地使用它。

但是,c#提供了一个用于真正集成测试的NuGet包:


(我是作者)

这看起来正是我想要的,但它不能与dotnet core一起工作。@kiml42看看NEST中的测试项目,该项目为集成测试下载并启动不同的Elasticsearch群集版本。具体来说,请查看集成目录中的
ClusterBase
ElasticsearchNode
。这些在dotnetcore和桌面CLR上工作