0
我正在使用xunit进行单元测试,我有一个期望对象列表和一个实际对象列表。如何比较两个列表中每个对象(日期)的特定元素以查看它们是否相等?我找到了Assert.Collection方法,但我无法弄清楚它如何比较两个列表的内容。比较两个列表与Xunit
我正在使用xunit进行单元测试,我有一个期望对象列表和一个实际对象列表。如何比较两个列表中每个对象(日期)的特定元素以查看它们是否相等?我找到了Assert.Collection方法,但我无法弄清楚它如何比较两个列表的内容。比较两个列表与Xunit
你不需要XUnit的细节。这个问题可以通过使用LINQ来解决。
要从列表进行比较的元素简单地使用:
Assert.True(isList[1] == shouldList[1]);
只是内容直接访问列表。如果你不知道的指数,你可以使用LINQ:
Assert.True(shouldList.Any(x => x == isList[1]);
这将检查shouldList
包含等于isList
第二元素的任何元素。
如果你想比较,如果该列表中的内容是相同的,不知道该序列,使用类似这样的:shouldList
Assert.True(shouldList.All(shouldItem => isList.Any(isItem => isItem == shouldItem)));
此检查所有项目,在isList
至少一个项目是相同的。
备注:
我用==
操作比较。如果这项工作取决于列表的内容。你说你比较日期,这里equals
将检查平等,而不是身份。对于大多数参考类型,equals
只会比较身份。在这里,您可以覆盖默认的equals
实现,也可以比较自定义字段和属性,而不是使用==
运算符。
感谢您的帮助,测试现在通过。我没有任何选项将此标记为答案,尽管 – proteus
@proteus应该是附近的upvote按钮的标志https://stackoverflow.com/help/accepted-answer – Iqon
找到它了,谢谢 – proteus