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 上,我的 readRecordsnull

你知道为什么吗?

编辑

在真实环境中(无模拟)查询 returns 所有文档都符合预期

我认为问题出在安装程序中。下面一行:

ElasticClientMock.Setup(ec => ec.Search(It.IsAny<Func<SearchDescriptor<GroupRecord>, SearchDescriptor<GroupRecord>>>())).Returns(groupResp.Object);

Mock 正在寻找具有两个 SearchDescriptor 对象的 Func<>,它在 NEST1 中。现在,我认为 Search 的签名是一个 Func<>,其中有一个 SearchDescriptor 和一个 ISearchRequest.