AMG Solution

【Java Maven】XMLの差分チェック! XMLUnit2.xの導入手順とサンプルコード

こんにちは、飯塚です。
 
最近業務でデータの送受信にXMLを使用しますが、目視での確認は手間がかかるので他の方法を検討したくなりました。今回はXMLの差分チェックライブラリXMLUnit2.xをご紹介します。
 

記事の内容のサンプルプロジェクトはGitHubにあります。ご自由にお試しください。

XMLUnitとは

XMLUnitは、単純にXMLを文字列に変換するだけではXMLのテストは上手くいかないという理由で生まれたそうです。最も重要な特徴であるdiff-engineによってテスト観点に応じたテストコードを作成できます。
 
https://www.xmlunit.org

実行環境

OS
Windows 10
Java
Java SE 8
XMLUnit
2.6.3

XmlUnit2.Xの導入

今回はpom.xmlに「xmlunit-core」と「xmlunit-matchers」を追加するだけです。
pom.xml

https://mvnrepository.com/artifact/org.xmlunit/xmlunit-core
https://mvnrepository.com/artifact/org.xmlunit/xmlunit-matchers

サンプルコード

簡単なJUnitのサンプルコードです。
XmlUnitSample.java

ポイントはDiffBuilderクラスです。DiffBuilderによってテスト観点に応じたテストコードを作成できます。例えば、「withNodeFilter()」を使用すれば特定のノードを除外して差分をチェックできます。
 
https://www.xmlunit.org/api/java/master/org/xmlunit/builder/DiffBuilder.html

実行結果(一致/差分あり)

実行結果(一致)
(実行:testSame(), 対象XML:source.xml, comparison-same.xml)

実行結果(差分あり)
(実行:testDiff(), 対象XML:source.xml, comparison-diff.xml)

まとめ

触ってみた感触は、導入はごく簡単でしかもテストコードもシンプルに書けるのでかなり使いやすい印象です。Java以外に.Netにも対応しており、今も開発が続いているようですので追加機能も期待できそうです。
 
一度使ってみてはいかがでしょうか。
 
 
 
 
《参考記事》

IIZUKA'S BLOG

飯塚暉の記事

飯塚暉の記事の最新情報をお届けいたします。

SAME CATEGORY BLOG

この記事と同様のカテゴリー記事

新卒採用
はじめました。
LOADING