这是我的测试功能(c#,visual studio 2010):
[TestMethod()] public void TestGetRelevantWeeks() { List<sbyte> expected = new List<sbyte>() { 2,1,52,51,50,49,48,47,46,45 }; List<sbyte> actual = new List<sbyte>() { 2,45 }; Assert.AreEqual<List<sbyte>>(expected,actual); }
例外:
TestGetRelevantWeek失败Assert.AreEqual失败.
预期:System.Collections.Generic.List 1 [System.SByte].
实际:System.Collections.Generic.List 1 [System.SByte].
AreEqual只检查引用的相等性,而不是内容吗?
但是,异常消息会令人困惑.我也找不到通用列表的默认相等比较器的文档.
您能否帮助澄清测试失败的原因以及测试两个列表内容相等性的解决方案?
亲切的问候
解决方法
Does AreEqual only check equality of the reference,not the contents?
叶氏.
要测试内容,您可以:
Assert.AreEqual(expected.Count,actual.Count); for (var i = 0; i < expected.Count; i++) { Assert.AreEqual(expected[i],actual[i]); }