pro*_*eus 4 c# assert xunit.net
我正在使用xunit进行单元测试,我有一个预期对象列表和一个实际对象列表。如何比较两个列表中每个对象的特定元素(日期)以查看它们是否相等?我找到了Assert.Collection方法,但是我不知道它如何比较两个列表的内容。
您不需要XUnit细节。通过使用LINQ可以解决此问题。
要比较列表中的元素,只需使用:
Assert.True(isList[1] == shouldList[1]);
Run Code Online (Sandbox Code Playgroud)
只需直接访问列表内容。如果您不知道索引,则可以使用LINQ:
Assert.True(shouldList.Any(x => x == isList[1]);
Run Code Online (Sandbox Code Playgroud)
这将检查中是否shouldList包含等于中的第二个元素的任何元素isList。
如果要比较列表内容是否相同,而又不知道顺序,请使用以下方法:
Assert.True(shouldList.All(shouldItem => isList.Any(isItem => isItem == shouldItem)));
Run Code Online (Sandbox Code Playgroud)
这将检查shouldList其中至少一个项目isList是否相同的所有项目。
备注:
我用==运算符进行比较。是否可行取决于列表的内容。您说您正在比较日期,此处equals将检查是否相等,而不是身份。对于大多数引用类型,它们equals只会比较身份。在这里,您必须覆盖默认equals实现,或者比较自定义字段和属性,而不要使用==运算符。
| 归档时间: |
|
| 查看次数: |
3707 次 |
| 最近记录: |