将模型数据添加到模型列表中的单元测试

本文关键字:模型 单元测试 列表 数据 添加 | 更新日期: 2023-09-27 18:05:02

我正试图将我的User模型添加到Userslist中进行单元测试。下面是我的测试:

[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服务返回哪个列表作为用户列表,因此可以在测试结束时断言它包含正确的用户。