0

私はxmlファイルを生成するいくつかのクラスを書いています。(現時点では、詳細はおそらく重要ではありません)。

私は最善のテスト戦略が何であるか疑問に思っています。

  • 出力を比較するためだけにxml生成コードを書き直したくありません.ファイルをディスクに書き込んで特定のマイルストーンで比較することができます.年)
  • ゲッターとセッターではなく、アーキテクチャの動作をテストすることにもっと興味があります

頭に浮かぶオプション:

  • テスト環境で xml ファイルを再構築し、文字列表現を比較する
  • 手動で結果を確認する (ファイルへの書き込みなど)
  • テスト環境でメモリ内の xml ファイルを再構築し、メモリ内の要素を比較します。

C++ および/または Google Test 用のライブラリを知っている場合は、仮想ボーナス。

アイデア?

4

4 に答える 4

3

XSD を使用し、XML を XSD に対して検証することを検討しましたか? それがあなたがテストしていたコンテンツなのか構造なのかについては言及していませんでした(おそらく両方)。
妥当性が確認された場合は、XML の構造が必要な構造に準拠しているかどうかをテストします。

于 2009-10-21T03:21:05.147 に答える
2

過去に私はこの2つの方法にアプローチしました:

xmlファイルをテストファイルに文字列として保存された結果と比較します。これは実装が簡単で、テスト目的でxmlファイルのバリエーションを生成する場合を除いて、文字列比較方法は正常に機能します。

xmlファイルのライターとリーダーがある場合は、元のファイルとラウンドトリップの結果を比較できます。

テストの目的のためだけに、テスト関数でファイルを生成するロジックを複製するべきではないことに同意します。また、ファイルシステムに書き込む必要性を回避しようとします。これはファイルシステムへの不必要な依存であり、テストの実行が遅くなる可能性があります。

于 2009-10-21T03:38:00.323 に答える
1

XMLユニットの使用を検討してください:http://xmlunit.sourceforge.net。XMLファイルの同等性を表明するために使用できるJUnit拡張クラスを提供します。

于 2009-10-21T03:36:16.380 に答える
1

XML 差分ツールを検討することもできます。MSDN で無料で入手できるXML Diff and Patch Toolがあります。

C++ ツールを探しているようです。その場合、libxmldiffの方が適している可能性があります。

于 2009-10-21T03:25:24.747 に答える