如何在fakeit Easy单元测试中比较两个列表 [英] How to compare two lists in fakeit Easy unit testing
本文介绍了如何在fakeit Easy单元测试中比较两个列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
{
List< Employee> emplist = new 列表< Employee>();
emplist.Add( new 员工{Name = Emp_1,BasicSalary = 1000 ,Id = Guid.NewGuid(),HRA = 100 ,DA = 10 ,TotalSalary = 1110 });
emplist.Add( new 员工{Name = Emp_2,BasicSalary = 1000 * 2 ,Id = Guid.NewGuid() ,HRA = 200 ,DA = 20 ,TotalSalary = 2220 });
emplist.Add( new 员工{Name = Emp_3,BasicSalary = 1000 * 3 ,Id = Guid.NewGuid() ,HRA = 300 ,DA = 30 ,TotalSalary = 3330 });
var empRep = new EmployeeRepository();
var support = fake.Resolve< ISupport>();
var CalSalary = fake.Resolve< ICalSalaryClass>();
A.CallTo(()= > support.FindAllEmp())。返回(emplist);
A.CallTo(()= > CalSalary.CalculateSalary( 100 ))。WithAnyArguments ().Returns(emplist);
var result = empRep.CallSupportFindAll();
// CollectionAssert.AreEqual(emplist,result);
Assert.AreEqual(emplist,result);
var r1 =结果[ 0 ];
Assert.AreEqual(r1.Name,emplist [ 0 ]。姓名);
Assert.AreEqual(r1.TotalSalary,emplist [ 0 ]。TotalSalary);
Assert.AreEqual(r1.BasicSalary,emplist [ 0 ]。BasicSalary);
}
我想要比较从方法callSupportfindAll()返回的两个列表emplist和结果列表。这里是Assert.AreEqual(r1.Name,emplist [0] .Name);工作,但如果我们有成千上万的记录,那么需要写几千行。所以请回答 - 一行代码比较两个列表...提前感谢
解决方案
请先阅读我的评论。
我认为你正在寻找已经创建的方法:
1)如果你想得到相等数据的列表...使用 [^ ]
2)如果你想获得差异列表...使用 Enumerable.Except() [ ^ ]
using (var fake = new SystemUnderTest.AutoFakeContainer())
{
List<Employee> emplist = new List<Employee>();
emplist.Add(new Employee { Name = "Emp_1", BasicSalary = 1000, Id = Guid.NewGuid(), HRA = 100, DA = 10, TotalSalary = 1110 });
emplist.Add(new Employee { Name = "Emp_2", BasicSalary = 1000 * 2, Id = Guid.NewGuid(), HRA = 200, DA = 20, TotalSalary = 2220 });
emplist.Add(new Employee { Name = "Emp_3", BasicSalary = 1000 * 3, Id = Guid.NewGuid(), HRA = 300, DA = 30, TotalSalary = 3330 });
var empRep = new EmployeeRepository();
var support = fake.Resolve<ISupport>();
var CalSalary = fake.Resolve<ICalSalaryClass>();
A.CallTo(() => support.FindAllEmp()).Returns(emplist);
A.CallTo(() => CalSalary.CalculateSalary(100)).WithAnyArguments().Returns(emplist);
var result = empRep.CallSupportFindAll();
// CollectionAssert.AreEqual(emplist, result);
Assert.AreEqual(emplist, result);
var r1 = result[0];
Assert.AreEqual(r1.Name, emplist[0].Name);
Assert.AreEqual(r1.TotalSalary, emplist[0].TotalSalary);
Assert.AreEqual(r1.BasicSalary, emplist[0].BasicSalary);
}
I want to compare two list emplist and result list which is return from method callSupportfindAll(). here Assert.AreEqual(r1.Name, emplist[0].Name); worked but if we have thousands of record then need to write thousands of line. so please answer-- for one line code for compare two list... thanks in advance
解决方案
Please, read my comment first.
I think you're looking for methods which are already created:
1) if you want to get list of equal data... use Enumerable.Intersect[^]
2) if you want to get list of differences... use Enumerable.Except()[^]
这篇关于如何在fakeit Easy单元测试中比较两个列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文