C# 向模型列表添加模型数据的xUnit单元测试
我正在尝试将我的C# 向模型列表添加模型数据的xUnit单元测试,c#,unit-testing,xunit,nancy,C#,Unit Testing,Xunit,Nancy,我正在尝试将我的用户模型添加到用户的列表。以下是我的测试: [Fact] public void Add_User_To_User_List() { //Given var fakeGuid = new Guid("36a84feb-cd51-4f1f-9b19-6d8dc2c89d4a"); _jsonService.DeserializeObject<User>(_fakeUserJsonFile).Returns
用户
模型添加到用户的列表
。以下是我的测试:
[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?????
}
我只想测试传递到方法中的用户
是否添加到用户列表
。显然,我真正测试的唯一代码是userList.Add(user)
但我只是不知道怎么做,有人能帮忙吗?您必须检查您的服务结果是否如您预期的那样是idd:
//Then
Assert.IsTrue(result);
您的下一个测试可能是测试AddUser的故障,其中\u jsonService.SerializeObject(\u fakeUserJsonFile,\u fakeUpdatedUserList).Returns(false)
和Assert.IsFalse(结果)代码>类似这样的代码:
Assert.Contains(_fakeUser, _fakeUserList);
由于您可以控制伪造的json服务返回的用户列表,因此您可以在测试结束时断言它包含正确的用户。因此,即使我没有测试该部分测试,我也断言该方法为true,我正在测试userList.Add(user)代码>方法的一部分?我已经这样做了,当它到达var serializeObject=\u jsonService.serializeObject(\u fileName,userList)
,serializeObject
返回true,现在我查看了\u文件名
和userList
参数,它与我的模拟数据相同,但返回false?我已经对\u jsonService.SerializeObject(\u fileName,userList)进行了单元测试代码>每次都会通过,我的模拟数据是正确的,所以我不知道为什么会失败?它在\u fakeUpdateUserList
参数上出错,但它是正确的,所以我不知道为什么它在这个阶段会失败。您的\u jsonService被注入到您的用户逻辑类中了吗?看起来你调用的是服务而不是模拟的服务。没有\u jsonService
在构造函数中被模拟出来,唯一可能的是我写的\u fakeUpdateUserList
错了,但不是。这仍然失败,当我调试它时,这行代码var serializeObject=\u jsonService.serializeObject(\u fileName,userList)代码>返回false。我认为这是因为即使是相同的数据,它对数据的引用也不同,所以在内存中,它实际上是不同的,我该如何处理这个问题呢?
Assert.Contains(_fakeUser, _fakeUserList);