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/
(我是作者)
使用 InMemoryConnection
class 对我们的 Elasticsearch 项目进行单元测试是一个好习惯吗?
此 class 正用于单元测试的实际源代码中。但我问的原因是因为它来自 HttpConnection
我不太确定它是否打开任何 HTTP 连接。我们的单元测试转到构建服务器,所以我想避免这种情况。谢谢你的帮助。
是的。
如果你查看 InMemoryConnection
的实现,你会发现它覆盖了 DoSynchronousRequest and DoAsyncRequest(负责实际执行 HTTP 请求的 HttpConnection
的方法),只是 returns 一个假的 ElasticsearchResponse
。没有打开 HTTP 连接,也没有发出请求,因此您可以安全地在单元测试中使用它。
然而,有一个用于来自 c# 的真正集成测试的 NuGet 包: https://www.nuget.org/packages/elasticsearch-inside/
(我是作者)