NEST 2.0 和 ElasticSearch 2.0 无法模拟“全部返回”查询
本文关键字:返回 全部 全部返回 查询 ElasticSearch NEST 模拟 | 更新日期: 2023-09-27 18:37:07
这是我想要模拟的查询:
var readRecords = elastic.Search<GroupRecord>(s => s
.Index(indexName)
.Query(q => q.
QueryString(qs => qs.Query("*"))));
这是实际的最小起订量
var groupResp = new Mock<ISearchResponse<GroupRecord>>();
var groupRecords = new[]
{
new GroupRecord
{
GroupName = "blablabla"
}
};
groupResp.SetupGet(x => x.Documents).Returns(groupRecords);
ElasticClientMock.Setup(ec => ec.Search(It.IsAny<Func<SearchDescriptor<GroupRecord>, SearchDescriptor<GroupRecord>>>())).Returns(groupResp.Object);
在 NEST1.0 和 ElasticSearch1.0 上,查询返回所有 (1) 个文档。在新的NEST2.0和ElasticSearch2.0上,我的readRecords
是null
。
你知道为什么吗?
编辑
在真实环境中(无模拟),查询按预期返回所有文档
我认为问题出在设置中。 以下行:
ElasticClientMock.Setup(ec => ec.Search(It.IsAny<Func<SearchDescriptor<GroupRecord>, SearchDescriptor<GroupRecord>>>())).Returns(groupResp.Object);
Mock 正在寻找一个 Func<>其中包含两个SearchDescriptor
对象,它在 NEST1 中。 现在,我认为搜索的签名是一个 Func<>有一个SearchDescriptor
和一个ISearchRequest
。