0

基本的に2つの差分ソフトウェアによって生成された2つのxmlを比較する単体テストソリューションがあります。

問題は、1 つの xml に小文字の 2 つの値があり、他の xml には以下のように大文字の値があることです。

1位

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

2位

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

このメソッドを使用して xml を比較します。

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

ただし、大文字と小文字の問題があるため、値を比較すると false が返されます。そのケースの問題を無視して、値のみを比較するにはどうすればよいですか?

編集:もう1つの問題

別の問題は次のとおりです。空の要素がある場合:

1位:

<LinkedObjectName></LinkedObjectName>

2番目:

<LinkedObjectName />

Assert.AreEqual を実行すると、文字ごとのチェックが実行され、ここで中断します。

どうすればこれを処理できますか?

4

1 に答える 1

0

使用しないでくださいAssert.AreEqual、使用Assert.IsTrueしてくださいString.Equals

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

編集:

2つのXMLドキュメントをより堅牢に比較するには、MicrosoftのXML差分およびパッチツールを使用してみてください。このツールは、ノードや属性の順序が異なるなど、単純な文字列の比較が失敗した場合でも、XMLドキュメントのコンテンツが同等であるかどうかを判断しようとします。

于 2012-09-10T18:53:08.417 に答える