0

我有单元测试解决方案,它基本上比较了两个 diff 软件生成的两个 xml。

问题是一个 xml 有 2 个值 n 小写,而另一个有它的大写,如下所示。

第一

<IsMirrored>False</IsMirrored>
<IsVariable>True</IsVariable>

第二

<IsMirrored>false</IsMirrored>
<IsVariable>true</IsVariable>

我使用这种方法来比较 xml:

Assert.AreEqual(originalDoc.OuterXml, newDoc.OuterXml);

但是由于大小写问题,比较值时返回false。我将如何忽略该案例问题而仅比较价值?

编辑:另一个问题

另一个问题是:如果有一个空元素:

第一个:

<LinkedObjectName></LinkedObjectName>

第二:

<LinkedObjectName />

如果我执行 Assert.AreEqual,它将逐个字符地进行检查,并在此处中断。

我该如何处理?

4

1 回答 1

0

不要使用Assert.AreEqual,使用Assert.IsTrueString.Equals

Assert.IsTrue(
    String.Equals(
        originalDoc.OuterXml, 
        newDoc.OuterXml, 
        StringComparison.CurrentCultureIgnoreCase))

编辑:

为了更可靠地比较这两个 XML 文档,您可以尝试使用 Microsoft 的XML Diff and Patch Tool。即使在简单的字符串比较失败的情况下(例如节点或属性的不同排序),该工具也会尝试确定您的 XML 文档的内容是否相同。

于 2012-09-10T18:53:08.417 回答