当前位置:  开发笔记 > Android > 正文

VS2010中的Assert.AreEqual()异常

如何解决《VS2010中的Assert.AreEqual()异常》经验,为你挑选了1个好方法。

我对单元测试相当新,并且正在使用VS2010开发并运行我的测试.我有一个简单的测试,如下图所示,它简单地比较了2个System.Data.DataTableReader对象.我知道它们是相同的,因为它们都是使用相同的对象类型,相同的输入文件创建的,并且我已经验证了对象"看起来"相同.

我意识到我可能正在处理几个问题,一个是这是否正确使用Assert.AreEqual甚至是正确的方法来测试这个场景,另一个是我正在处理的主要问题,这就是为什么此测试因此异常而失败:

Failed 00:00:00.1000660 0 Assert.AreEqual failed. 
Expected:. Actual:. 

这是失败的单元测试代码:

public void EntriesTest()
{
    AuditLog target = new AuditLog(); 

    target.Init();

    DataSet ds = new DataSet();
    ds.ReadXml(TestContext.DataRow["AuditLogPath"].ToString());
    DataTableReader  expected = ds.Tables[0].CreateDataReader();
    DataTableReader actual = target.Entries.Tables[0].CreateDataReader();
    Assert.AreEqual(expected, actual);
}

任何帮助将不胜感激!



1> Randolpho..:

据我所知,DataTableReader不会覆盖该Equals方法; 因此,呼叫Equals将是参考平等检查; 两个单独的引用,失败的平等.

你想要的是集合断言.打电话CollectionAssert.AreEquivalent()来.如果订单很重要,请使用CollectionAssert.AreEqual().

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有