FluentAssertions 比较列表的内容而不是列表本身
Posted
技术标签:
【中文标题】FluentAssertions 比较列表的内容而不是列表本身【英文标题】:FluentAssertions comparing contents of lists instead of lists themselves 【发布时间】:2012-02-08 21:04:11 【问题描述】:我有两个具有一堆属性的对象(同一类的实例),其中一些是其他对象的列表。
class A
public int a get; set;
public string b get; set;
public IList<C> cs get; set;
我想使用FluentAssertions library比较这些,并确保它们具有相同的属性,所以我添加
first.ShouldHave().AllProperties().EqualTo(second);
然后我得到一个错误
预期属性 c 的值为
但发现
换句话说,当比较列表的属性时,它会执行引用等于,这在这种情况下显然会失败。
我如何告诉 FluentAssertions 断言 列表中元素的属性是相等的,而不是列表本身?
【问题讨论】:
【参考方案1】:从 1.7.0 版开始支持此功能。在此处阅读发行说明。 http://www.dennisdoomen.net/2012/01/fluent-assertions-170-has-been-released.html
【讨论】:
不幸的是,我目前无法升级 - 这必须首先通过我们开发团队的一系列决策。但是我必须升级才能获得该功能的事实回答了我的问题 =) 谢谢! 嗯,1.7.0 版本向后兼容 1.6.0,这就是我们使用语义版本控制的原因:-) 很高兴知道!这仍然不是我的决定,但说服项目经理会更容易=)以上是关于FluentAssertions 比较列表的内容而不是列表本身的主要内容,如果未能解决你的问题,请参考以下文章
.Net FluentAssertions .Contains 不能正确比较对象
VS/xUnit/FluentAssertions:在测试消息中提供文件链接
FluentAssertions:如何在每对元素上使用自定义比较来比较两个集合?
FluentAssertions Should.Equal 在集合上,包含空值