【发布时间】:2013-06-30 09:54:47
【问题描述】:
我试图弄清楚如何确定两个List<FileInfo> 何时不同。为什么 MSTest 告诉我这两个与 CollectionAssert.AreEquivalent 或 SequenceEqual 不同?
测试失败:CollectionAssert.AreEquivalent failed. The expected collection contains 1 occurrence(s) of <C:\Windows\Microsoft.NET\Framework\v3.0\WPF\PenIMC.dll>. The actual collection contains 0 occurrence(s).
string basePath = Path.Combine(Environment.GetEnvironmentVariable("windir"),
@"Microsoft.NET\Framework\v3.0\WPF");
var fiList1 = new List<FileInfo> { new FileInfo(Path.Combine(basePath, "PenIMC.dll")) };
var fiList2 = new List<FileInfo> { new FileInfo(Path.Combine(basePath, "PenIMC.dll"))};
CollectionAssert.AreEquivalent(fiList1, fiList2); //why is this failing?
//And this one too...
Assert.IsTrue(fiList1.SequenceEqual(fiList2));
我可以让它与int 等简单类型一起使用,类似于this,但不适用于我的List<FileInfo>。如果您不能仅通过查看我上面的代码来确定这一点,也许可以提供一种聪明的方法来调查这一点 - 例如将对象序列化为 XML,我可以区分它们。我猜我错过了一些东西。
【问题讨论】:
标签: c# unit-testing mstest