将模型数据添加到模型列表中的单元测试
本文关键字:模型 单元测试 列表 数据 添加 | 更新日期: 2023-09-27 18:05:02
我正试图将我的User
模型添加到Users
的list
中进行单元测试。下面是我的测试:
[Fact]
public void Add_User_To_User_List()
{
//Given
var fakeGuid = new Guid("36a84feb-cd51-4f1f-9b19-6d8dc2c89d4a");
_jsonService.DeserializeObject<User>(_fakeUserJsonFile).Returns(_fakeUserList);
_guidService.NewGuid().Returns(fakeGuid);
_jsonService.SerializeObject(_fakeUserJsonFile, _fakeUpdatedUserList).Returns(true);
//When
var result = _userService.AddUser(_fakeUser);
//Then
What Goes Here?????
}
我要测试的方法:
public bool AddUser(User user)
{
var userList = GetUsers();
user.ID = _guidService.NewGuid();
userList.Add(user);
var serializeObject = _jsonService.SerializeObject(_fileName, userList);
return serializeObject;
}
我只想测试传入方法的User
是否被添加到User List
中。所以很明显,我真正测试的唯一代码是userList.Add(user);
,但我只是不知道如何做到这一点,有人能帮忙吗?
你必须检查你的服务的结果是否如你所期望的那样为真:
//Then
Assert.IsTrue(result);
您的下一个测试可以测试AddUser的失败,其中_jsonService.SerializeObject(_fakeUserJsonFile, _fakeUpdatedUserList).Returns(false);
和Assert.IsFalse(result);
像这样:
Assert.Contains(_fakeUser, _fakeUserList);
由于您控制了伪造的json服务返回哪个列表作为用户列表,因此可以在测试结束时断言它包含正确的用户。