17

現在いくつかの表形式で取り込まれているビジネス ルールの複雑なセットに対して非常に大規模なテスト スイートを作成する必要があります (たとえば、パラメーター XYZ がそのようなものである場合、値は V1 と V2 の間にある必要があります)。各ルールには、名前と独自のセマンティクスがあります。

私の最終的な目標は、サブ テスト スイートに編成されたテスト スイートを作成し、各ルールのテスト ケースを作成することです。

1 つのオプションは、これらすべてのルールをテストとして実際にハードコーディングすることです。それは醜く、時間がかかり、柔軟性に欠けます。

もう 1 つは、ルール ファイルを読み取り、単体テストで Java クラスを生成する Python スクリプトを作成する方法です。できればこれは避けたい。もう 1 つのバリエーションは、Jython を使用することです。

理想的には、ファイルを読み取り、その中にサブスイートとテストを定義するテスト スイートが必要です。これらの各テストは、テーブル ファイルから取得した特定の値で初期化され、システムで固定のエントリ ポイントを実行し、期待値に基づいて結果に対して何らかのバリデータ関数を呼び出す場合があります。

Javaのみを使用してこれを実現する合理的な方法はありますか?

更新: 私たちの種類のルールをいくらか単純化したかもしれません. それらのいくつかは確かに表形式 (Excel スタイル) であり、他のものはよりあいまいです。私はおそらくこの問題を抱えた最初の人ではないので、一般的な質問は残っています.

4

4 に答える 4

17

JUnit 4 内では、Parameterized runnerを確認する必要があります。あなたが説明する目的(データ駆動型テスト)のために作成されました。ただし、それらをスイートに編成することはありません。

Junit 3 では、TestSuite と Test をプログラムで作成できます。答えはJunit Recipesにあり、必要に応じて拡張できます (JUnit 4 は Junit 3 テストを実行できることを思い出してください)。

于 2009-10-29T22:00:49.190 に答える
8

そのためにFITを利用することを考えたことはありますか?

すでにテーブルの準備ができているようで、「ビジネス ルール」は「ビジネス パーソンが Excel を使用して作成する」ように聞こえます。

FIT は、入力 -> 期待される出力のマッピングを持つテーブルに基づいてテストをチェックするためのシステムであり、これらのテストを実行するためのオープン ソース Java ライブラリが利用可能です。

于 2009-10-29T21:37:18.083 に答える
1

私たちは FIT を試し、コンコーディオンで行くことにしまし。このライブラリの主な利点は次のとおりです。

  • テストは、コード ベースと一緒に (たとえば、Subversion リポジトリに) チェックインできます。
  • それらは標準の JUnit ランナーによって実行されます
于 2009-10-31T21:52:37.540 に答える