MS测试失败了

时间:2016-04-01 22:27:28

标签: c# unit-testing

我从MS Test开始尝试运行以下测试。我看到下面的部分给了我一个失败,这是非常令人惊讶的:

    [TestMethod]
    public void EachRetailerPassedToBuilderIsReturnedInVmList()
    {
        List<string> mockRetailers = new List<string> { "Asda", "Tesco" };

        Assert.AreEqual(new List<string>{ "Asda", "Tesco"}, mockRetailers);

    }

我做错了什么?

  

结果消息:Assert.AreEqual失败。   预期:

1 个答案:

答案 0 :(得分:1)

问题是List<T>.Equals不提供元素的元素检查。它只会比较参考文献。快速解决方案是迭代数据并在每个元素上Assert.Equals。请记住,事先要检查列表大小是否相等。

也可以使用CollectionAssert.AreEqual来获得适当的结果。

How to compare Lists in Unit Testing