gpt4 book ai didi

c# - Moq 检索特定列表项

转载 作者:行者123 更新时间:2023-11-30 22:08:49 26 4
gpt4 key购买 nike

我目前有这样一个Moq表达式

repo.Setup(r => r.GetProjectConfigurationById(It.Is<int>(s => s == response.Id))) 
.Returns(response); // return response only if id matches setup one

可以看出,response 是一个对象,它有自己的 Id 字段。现在我有一个 List<responses>并想将这个表达式转换成这样的东西:

  • 得到任何整数Id
  • 如果Id正在计算 response.Id , 返回列表的那个元素。
  • 可选地,如果未找到匹配项,则返回 null

我如何使用 Moq 做到这一点?

最佳答案

您可以使用 It.IsAny<int>()匹配 GetProjectConfigurationById 中的任何参数

Returns 也有重载函数,您可以在其中使用传递给 GetProjectConfigurationById 的参数指定自定义条件通过 id 查找元素或返回 null:

var responses = new List<Response>();
//...
repo.Setup(r => r.GetProjectConfigurationById(It.IsAny<int>()))
.Returns<int>(id => responses.SingleOrDefault(r => r.Id == id));

关于c# - Moq 检索特定列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22010063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com