小编Man*_*kar的帖子

模拟 GetItemLinqQueryable 和扩展方法 ToFeedIterator()

我们正在使用 Azure Cosmos 客户端 V3。为了获取数据,我们使用 GetItemLinqQueryable 和 ToFeedIterator 使其异步。它运行良好,但是在模拟/单元测试时,我们遇到了与 ToFeedIterator 相关的错误

代码:

IOrderedQueryable<T> linqQueryable = _container.GetItemLinqQueryable<T>(requestOptions: requestOptions);
var feedIterator = linqQueryable.Where(predicate).ToFeedIterator();
Run Code Online (Sandbox Code Playgroud)

对于模拟 UnitTestCode 代码:

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

它确实从 GetItemLinqQueryable 返回 1 条记录,但是 ToFeedIterator() 失败说System.ArgumentOutOfRangeException: 'ToFeedIterator is only supported on cosmos LINQ query operations Parameter name: linqQuery'

c# moq azure-cosmosdb

5
推荐指数
1
解决办法
1393
查看次数

标签 统计

azure-cosmosdb ×1

c# ×1

moq ×1