2011-02-01 29 views
1

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

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

これを書き始める前に、私はこのタイプのことを行うツールがすでに存在するかどうかを見たいと思いました。もしそうでなければ、私が提案している解決策についていくつかの意見を聞きました。

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

答えて

3

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

あなたの計画は、私にとっては妥当であると思っていますし、プレーンなJUnitと@Parameterizedで実現することもできます。 SpockとGroovyはあなたの人生を楽にします。たとえば、Groovyでは、テキストファイルやデータベースをJavaで扱うよりもはるかに簡単です。

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

0

私はSpockを自分で好む。偉大な説明はで見つけることができ

https://github.com/Pragmatists/junitparams

https://weblogs.java.net/blog/johnsmart/archive/2014/07/23/data-driven-unit-testing-java

についてしかし、私はストレートのJUnitパラメータ化されたテストよりもはるかに読みやすいですそこJUnitParamsフレームワークがあることを見ていますこの質問にぶつかる他の人... ....

関連する問題