gpt4 book ai didi

c# - 以 bool 作为参数模拟一个方法,并返回一个带有 Moq 的 List<>

转载 作者:行者123 更新时间:2023-11-30 15:00:08 27 4
gpt4 key购买 nike

在我的测试中,我将数据定义为 List<IUser>有一些记录。

我想设置最小起订量的方法 GetList , 此方法收到 bool作为参数。我想作为返回 IUser列出IsValid是真的。

我试过这个:

Mock<IUsers> mockUserRepository = new Mock<IUsers>();

mockUserRepository.Setup(mr => mr.GetList(It.IsAny<bool>()))
.Returns((bool i) => _users.Select(x => x.IsValid == i));

但我得到这个错误:cannot convert List<bool> to List<IUser>

class User : IUser
{
public bool IsValid { get; set; }
}

interface IUser
{
bool IsValid { get; set; }
}

interface IUsers
{
List<IUser> GetList(bool isActive);
}

最佳答案

如果您想返回 IsValid 为真的 IUser 列表,那么您应该返回 IUser 列表,而不是 bool 的集合>,所以使用 Where 来过滤列表而不是 Select

// returns IEnumerable<boolean>
.Returns((bool i) => _users.Select(x => x.IsValid == i));

应该是

// returns List<IUser>
.Returns((bool i) => _users.Where(x => x.IsValid == i).ToList());

关于c# - 以 bool 作为参数模拟一个方法,并返回一个带有 Moq 的 List<>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15804233/

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