我有单元测试解决方案,它基本上比较了两个diff软件生成的两个xmls。
问题是一个xml有两个值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,它将通过字符检查进行字符处理,并在此处中断。
我该如何处理?
答案 0 :(得分:0)
请勿使用Assert.AreEqual
,使用Assert.IsTrue
和String.Equals
Assert.IsTrue(
String.Equals(
originalDoc.OuterXml,
newDoc.OuterXml,
StringComparison.CurrentCultureIgnoreCase))
修改强>
为了更加可靠地比较两个XML文档,您可以尝试使用Microsoft的XML Diff and Patch Tool。该工具尝试确定XML文档的内容是否相等,即使在简单的字符串比较失败的情况下,例如节点或属性的不同排序。