InMemoryConnection 用于单元测试 Elasticsearch 项目

InMemoryConnection for unit-testing Elasticsearch projects

使用 InMemoryConnection class 对我们的 Elasticsearch 项目进行单元测试是一个好习惯吗?

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

是的。

如果你查看 InMemoryConnection 的实现,你会发现它覆盖了 DoSynchronousRequest and DoAsyncRequest(负责实际执行 HTTP 请求的 HttpConnection 的方法),只是 returns 一个假的 ElasticsearchResponse。没有打开 HTTP 连接,也没有发出请求,因此您可以安全地在单元测试中使用它。

然而,有一个用于来自 c# 的真正集成测试的 NuGet 包: https://www.nuget.org/packages/elasticsearch-inside/

(我是作者)