我正在为一项服务编写单元测试,我需要模拟一个更复杂的 LINQ 查询,其中包括条件逻辑和异步方法,例如FirstOrDefaultAsync()
。
查询涉及几种链式方法,如过滤、排序和选择:
var result = await _products
.Where(x => x.CategoryId == categoryId)
.Where(x => x.Stock > 0)
.OrderBy(x => x.Price)
.FirstOrDefaultAsync();
我想模拟整个查询的行为,包括Where()
、OrderBy()
和FirstOrDefaultAsync()
方法,并提供自定义结果以测试不同的场景。
我正在使用 Moq 来模拟数据层,但我不确定如何模拟整个查询链并使其异步。