9
我想比较对象的列表,忽略了对象的顺序在列表中,仅对比一些属性中的对象,我目前使用下面的代码来执行这种比较:如何比较使用流利声明的列表?
actual.Should().NotBeNull();
actual.Count.Should().Be(expected.Count);
//compare ignoring order
foreach (var exp in expected)
actual.Should().Contain(act =>
act.IndividualId.Equals(exp.IndividualId)
&& act.Email.Equals(exp.Email)
&& act.FirstName.Equals(exp.FirstName)
&& act.LastName.Equals(exp.LastName)
);
但是,这看起来并不理想,因为当出现故障时,您不会从预期值中获得打印件。是否有内置的机制来使用流利的断言执行这种比较?
是否有可能比较两个List类型使用actual.Should()。是否包含(预计)? –
BraveNewMath
2014-04-29 17:00:34
是的,你可以做actual.Should()。BeEquivalentTo(expected); – 2014-04-29 18:21:02
灵活性,我们通常每个对象序列化JSON然后用字符串比较,误差输出看起来不错,你永远需要更新你的单元测试,如果有人添加了一个新的属性 – 2014-08-05 08:08:18