2

JUnitコード自体にハードコードされた必要な値を使用して、テスト スイートを設計しました。変更があるたびに、プロジェクトを開いて変更を加える必要があります。外部ファイルからの入力を提供するために、簡単に設計できる Excel シートを使用しています。Excel ファイルにはいくつかのドロップダウン メニュー項目もあり、テスト ケースを実行する必要があることがわかります。Excelシートには、テストスイートを実行する前にユーザーが値を入力する必要があるテキストボックスもあります。しかし、Excel はプラットフォームに依存しません。

JUnit Test Suite に入力を提供するために、広く受け入れられ、プラットフォームに依存しないより良い方法はありますか?

4

3 に答える 3

1

JUnit テストに入力を提供するための一般的に受け入れられている方法はないと思います。Afaik、単体テストは多くの場合、または定義上、小さい (テスト可能な最小部分) です。データは、テストの一部としてハードコーディングされて提供されます。

とは言うものの、単体テストを使用して、より複雑なデータを提供する必要がある大規模な数値アルゴリズム/モデルのテストも実施しています。このデータもスプレッドシートで提供しています。スプレッドシートは、この種の表形式データの自然な GUI だと思います。

私はObbaを使用してスプレッドシートから直接 Java コードをトリガーします(免責事項: 私も Obba の開発者ですが、私の主なオープン ソース プロジェクトは数学金融のライブラリであり、これらのシートを使用しています)。

私の提案は、両方のルートに行くことです:

  • ビルド環境の一部として、事前定義されたハードコーディングされたデータを使用して小さな (古典的な) 単体テストを作成します。
  • シートを介して提供されるデータを使用してより大きなテストを作成し、コードの動作を分析して入力します。

可能であれば、ハードコーディングされた「より大きなテスト」を自動テスト スーツに随時追加してください。

注:パラメーター化された単体テストの概念もあり、テストの一部としてパラメーターを生成 (ランダム化など) するツールがあります。

于 2013-08-09T20:56:47.103 に答える