C# 模拟GetItemLinqQueryable和扩展方法ToFeedIterator()

C# 模拟GetItemLinqQueryable和扩展方法ToFeedIterator(),c#,moq,azure-cosmosdb,C#,Moq,Azure Cosmosdb,我们正在使用Azure cosmos客户端V3。 对于获取数据,我们使用GetItemLinqQueryable和ToFeedIterator使其异步。然而,当模拟/单元测试时,它工作得很好,我们得到了与ToFeedIterator相关的错误 代码: IOrderedQueryable-linqQueryable=\u container.GetItemLinqQueryable(请求选项:请求选项); var feedIterator=linqQueryable.Where(谓词).ToFee

我们正在使用Azure cosmos客户端V3。 对于获取数据,我们使用GetItemLinqQueryable和ToFeedIterator使其异步。然而,当模拟/单元测试时,它工作得很好,我们得到了与ToFeedIterator相关的错误

代码:

IOrderedQueryable-linqQueryable=\u container.GetItemLinqQueryable(请求选项:请求选项);
var feedIterator=linqQueryable.Where(谓词).ToFeedIterator();
嘲笑 UnitTestCode代码:

var _mockResponse = new Mock<ItemResponse<Test>>();
mockContainer.Setup(x => x.GetItemLinqQueryable<Test>(It.IsAny<bool>(), It.IsAny<string>(), It.IsAny<QueryRequestOptions>())).Returns(queryable);
var_mockResponse=new Mock();
mockContainer.Setup(x=>x.GetItemLinqQueryable(It.IsAny()、It.IsAny()、It.IsAny())。返回(queryable);
它确实从GetItemLinqQueryable返回1条记录,但是ToFeedIterator()无法说出System.ArgumentOutOfRangeException:“ToFeedIterator仅在cosmos LINQ查询操作上受支持
参数名称:linqQuery'

我遇到了同样的问题。查看azure-cosmos-dotnet-v3 repo中这期github中的评论。我最终遵循了这里建议的方法

var _mockResponse = new Mock<ItemResponse<Test>>();
mockContainer.Setup(x => x.GetItemLinqQueryable<Test>(It.IsAny<bool>(), It.IsAny<string>(), It.IsAny<QueryRequestOptions>())).Returns(queryable);