c# - 如何在单元测试中比较列表

标签 c# visual-studio-2010 unit-testing mstest

这个测试怎么会失败?

[TestMethod]
public void Get_Code()
{
    var expected = new List<int>();
    expected.AddRange(new [] { 100, 400, 200, 900, 2300, 1900 });

    var actual = new List<int>();
    actual.AddRange(new [] { 100, 400, 200, 900, 2300, 1900 });

    Assert.AreEqual(expected, actual);
    // Assert.AreSame(expected, actual)       fails
    // Assert.IsTrue(expected.Equals(actual)) fails
}

最佳答案

要对集合进行断言,您应该使用 CollectionAssert :

CollectionAssert.AreEqual(expected, actual);

List<T>不会覆盖 Equals , 所以如果 Assert.AreEqual只需调用 Equals ,它将最终使用引用相等性。

关于c# - 如何在单元测试中比较列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11055632/

相关文章:

javascript - 使用 Jasmine 进行单元测试,模拟构造函数

c# - 如何在服务器上使不记名 token 无效

c# - 这可能是 : c# collection of Type with constrains, 还是通用类型的集合?

c# - 解析一个 COM [out] VARIANT* containing parray as SAFEARRAY of BSTR's in c#.net

wpf - Visual Studio 和 Expression Studio 有什么区别?

java - 一个方法在 JUnit 中生成了预期的结果,但它说它是 null

c++ - Boost.Test 显示测试持续时间

c# - 在Unity中有没有快速调试手机振动的方法?

visual-studio-2010 - Visual Studio 2010是否允许您编辑图标?

visual-studio-2010 - TFS 2012 和 VS 2010