XML ファイルを使用し、入力に基づいてテキスト出力を生成するクラスがあります。入力と出力の両方がかなり複雑で、出力には入力にないものが含まれる場合もあります。たとえば、タイムスタンプや、入力によって制御されないライブ データの結果が含まれます。つまり、クラスは純粋な入出力ではありません。変身。
JUnit を使用して結果のテキスト出力をテストしたいと思います。生成されたテキストは入力に基づいてさまざまな方法で変化する可能性があるため、各テストで出力の特定の部分をある種のテンプレートと照合できるようにしたいと考えています。各テンプレートでは、いくつかの単純なテキストの置換と、一致してはならないテキストの範囲も許可する必要があります。
問題は、そのようなフレームワークがすでに存在するかどうかです。
非常に低レベルの可能性の 1 つは、テキストを一致させるためにいくつかの派手な正規表現を使用することですが、正規表現には十分なコンテキストがないため、これらの使用には少し制限がありすぎると思います...
編集: 2 つのコメント:
- このクラスの機能の 1 つは、特定の単純なタイプのデータの集計と、入力に基づく計算 (合計など) を実行する機能です。生成された残りのテキスト出力もテストせずに、これをテストしたいと思います。
- 既存のコード ベースに変更を加えることができればよかったのですが、それはリファクタリングしたくないレガシー コードの非常に大きなチャンクです。そのため、模擬サービスの導入や小さなピースのテストはできなくなります。