NEST 2.0 和 ElasticSearch 2.0 无法模拟 "return all" 查询
NEST 2.0 and ElasticSearch 2.0 unable to mock a "return all" query
这是我要模拟的查询:
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
。
你知道为什么吗?
编辑
在真实环境中(无模拟)查询 returns 所有文档都符合预期
我认为问题出在安装程序中。下面一行:
ElasticClientMock.Setup(ec => ec.Search(It.IsAny<Func<SearchDescriptor<GroupRecord>, SearchDescriptor<GroupRecord>>>())).Returns(groupResp.Object);
Mock 正在寻找具有两个 SearchDescriptor
对象的 Func<>,它在 NEST1 中。现在,我认为 Search 的签名是一个 Func<>,其中有一个 SearchDescriptor
和一个 ISearchRequest
.
这是我要模拟的查询:
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
。
你知道为什么吗?
编辑
在真实环境中(无模拟)查询 returns 所有文档都符合预期
我认为问题出在安装程序中。下面一行:
ElasticClientMock.Setup(ec => ec.Search(It.IsAny<Func<SearchDescriptor<GroupRecord>, SearchDescriptor<GroupRecord>>>())).Returns(groupResp.Object);
Mock 正在寻找具有两个 SearchDescriptor
对象的 Func<>,它在 NEST1 中。现在,我认为 Search 的签名是一个 Func<>,其中有一个 SearchDescriptor
和一个 ISearchRequest
.