gpt4 book ai didi

c# - 用最小起订量模拟一个返回空值的更新方法

转载 作者:IT王子 更新时间:2023-10-29 03:54:42 25 4
gpt4 key购买 nike

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

我想设置最小起订量的方法 Update ,此方法接收用户 idstring更新。

然后我得到 IUser并更新属性 LastName

我试过这个:

namespace Tests.UnitTests
{
[TestClass]
public class UsersTest
{
public IUsers MockUsersRepo;
readonly Mock<IUsers> _mockUserRepo = new Mock<IUsers>();
private List<IUser> _users = new List<IUser>();

[TestInitialize()]
public void MyTestInitialize()
{
_users = new List<IUser>
{
new User { Id = 1, Firsname = "A", Lastname = "AA", IsValid = true },
new User { Id = 1, Firsname = "B", Lastname = "BB", IsValid = true }
};

Mock<IAction> mockUserRepository = new Mock<IAction>();
_mockUserRepo.Setup(mr => mr.Update(It.IsAny<int>(), It.IsAny<string>()))
.Returns(???);

MockUsersRepo = _mockUserRepo.Object;
}

[TestMethod]
public void Update()
{
//Use the mock here
}

}
}

但我收到此错误:无法解析返回符号

你有id吗?

class User : IUser
{
public int Id { get; set; }
public string Firsname { get; set; }
public string Lastname { get; set; }
public bool IsValid { get; set; }
}

interface IUser
{
int Id { get; set; }
string Firsname { get; set; }
string Lastname { get; set; }
bool IsValid { get; set; }
}

interface IAction
{
List<IUser> GetList(bool isActive);
void Update(int id, string lastname)
}

class Action : IAction
{
public IUser GetById(int id)
{
//....
}
public void Update(int id, string lastname)
{
var userToUpdate = GetById(id);
userToUpdate.LastName = lastname;
//....
}
}

最佳答案

如果你只是想验证这个方法是否被调用,你应该使用 Verifiable() 方法。

_mockUserRepository.Setup(mr => mr.Update(It.IsAny<int>(), It.IsAny<string>()))
.Verifiable();

如果您还想对这些参数执行某些操作,请先使用 Callback()。

_mockUserRepository.Setup(mr => mr.Update(It.IsAny<int>(), It.IsAny<string>()))
.Callback((int id, string lastName) => {
//do something
}).Verifiable();

更新

如果您返回一个 bool 值作为结果,您应该如何模拟它。

_mockUserRepository.Setup(mr => mr.Update(It.IsAny<int>(), It.IsAny<string>()))
.Returns(true);

关于c# - 用最小起订量模拟一个返回空值的更新方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15805812/

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