JDOM2 ライブラリを使用して XML ドキュメントを生成するアプリケーションがあります。ユニット/統合テストでは、生成されたドキュメントと手作りのサンプル ドキュメントを比較して同等性を確認する必要があります。
標準の org.w3c.dom.Document オブジェクトでは、XMLUnit を介してそれを行います。JDOM2でそれを行う方法は?
JDOM API では、JDOM との深い等価性はサポートされていません。自分でビルドする必要があります。これは、JDOM 2.1 の優れた潜在的な機能です....うーん。おそらく、私はそのようなものを追加します (ただし、正しくするには比較的複雑にする必要があります)。
2 つの JDOM ドキュメントでの深い等価は複雑です。名前空間、属性、コメント、処理命令などを比較する必要があります。多くの場合 (一部の) これらの違いは重要ではありません - コメントや空白の違いなど: おそらく一方に 2 つのテキスト メンバーが含まれます Text("Hello ")および Text("World!") であり、もう一方は単一のテキスト メンバー Text("Hello World!") を持つことができます。彼らは同じですか?
私の提案は、JDOM2 のいくつかの便利な機能 (getDescendants() イテレーターなど) を使用してから、独自のロジックを実行して 2 つのイテレーターを相互に比較することです。
コールバック用のある種のインターフェースを備えたネイティブ JDOM API メカニズムを検討します。これにより、詳細な比較が可能になります (おそらく、比較可能な結果 (負、0、または正) を構成する何かを使用して、より小さい、等しい、またはより大きい) .