私はスキーマファイルxmlを持っていて、そこからクラスを生成しました。開発中にxsdが変更される可能性があります。 xsdと生成されたクラスが同期されていることを確認するにはどうすればよいですか?xsdと生成されたクラスが同期していることを自動的にテストする方法は?
ビルド時にmaven経由でクラスを生成する可能性があります。これを使うかしないかによって、私はユニットテストで確かめたいと思います。
状況は、彼らがが同期されないができ、その下おかげで、挨拶 ステフ
私はスキーマファイルxmlを持っていて、そこからクラスを生成しました。開発中にxsdが変更される可能性があります。 xsdと生成されたクラスが同期されていることを確認するにはどうすればよいですか?xsdと生成されたクラスが同期していることを自動的にテストする方法は?
ビルド時にmaven経由でクラスを生成する可能性があります。これを使うかしないかによって、私はユニットテストで確かめたいと思います。
状況は、彼らがが同期されないができ、その下おかげで、挨拶 ステフ
? writing a simple JAXB pluginは、生成されたクラスにスキーマのタイムスタンプを追加するので、単体テストのタイムスタンプを比較できます。
しかし、私は全体のアプローチに疑問があります。スキーマのコンパイルはビルドプロセスの一部であり、これは設計上完璧でなければなりません。 Javaファイルがコンパイルされた.class
ファイルと「同期」されていることを確認していませんか?スキーマのコンパイルの場合も同じです。
答えをありがとう。いいえ.classファイル自体はチェックしませんが、ソースがスキーマを表しているかどうかを確認できます。製品が開発中でも、スキーマは完璧ではないというケースがあります。まあ、安定性は時間の経過とともに増えています。 – Steff
ビルドごとに強制的に世代を実行します。またはProfile
のように何度も実行しないようにして、開発時間を長くすることができます。
ここでは、毎回ソースを生成するためにJAXB
プラグインを見ることができます。
あなたが生成されたクラスからXMLを作成して、ユニットテストでは、XSDに対して生成されたXMLを検証しようとすることができます。 – flash
私は「リフレクション」と言うつもりでしたが、ビルドプロセスのテスト依存性としてスキーマからクラスを再生成することになりました。変更するたびにユニットテストをリファクタリングする必要はありません製。ですから、テストは*クラスを再生成しています – raven
こんにちはフラッシュ、いいアイデアです、ありがとう。 – Steff