1

私は一般的な問題だと思うことに直面していますが、それに対処するための議論や既存のツールはあまり見つかりませんでした。標準化されたjunitクラスから実行できる入力データと期待される結果(理想的にはフラットファイルの形式)を送信するQAをサポートする統合テストシステム(すでに強力な単体テストのスイートを持っている)をセットアップしようとしています。

@Paramaterizedここでは、junitアノテーションを使用して自分自身をロールする計画があります。データと結果の各セットに制御ファイルがあり、すべての制御ファイルが1つのディレクトリに配置されていると想像しています。パラメータジェネレータメソッドはこのディレクトリをスキャンし、これらのファイルのリストを返します。次に、テストコンストラクターはこのファイルを読み取り、入力データと期待される結果を設定します。

これを書き始める前に、この種のことを行うためのツールがすでに存在するかどうかを確認し、存在しない場合は、提案しているソリューションについて意見を聞きたいと思いました。

アプリケーション自体は純粋にバックエンドのETLタイプのツールであり、さまざまな形式の複数の入力ファイルからデータを取得し、データベースに結果を生成します。すでにメモリデータベース内のDerbyを使用して、些細な入力データの結果をチェックする静的統合テストがいくつかあります。同様のシステムを使用して、ここでデータを確認する予定です。期待される結果は(key_value, column, expected value)トリプルの形になります。残りのテストおよび結果レポートインフラストラクチャに結び付けるために、junitを使用したいと思います。

4

2 に答える 2

3

データ駆動型テストを強力にサポートする Groovy ベースのテスト フレームワークであるSpockをご覧ください。Spock は Java (および Groovy) コードをテストするために設計されており、JUnit と完全に互換性があります (実際、Spock テストは JUnit で実行されます)。データベースからデータを取得する簡単なテスト例については、こちらを参照してください。

一般的に、あなたの計画は私には合理的に聞こえ、プレーンな JUnit と @Parameterized で実現することもできます。ただし、Spock と Groovy を使用すると、作業が楽になります。たとえば、テキスト ファイルやデータベースの操作は、Java よりも Groovy の方がはるかに簡単です。

免責事項: 私は Spock の作成者です。

于 2011-02-03T08:09:04.457 に答える