2017-12-23 16 views
1

csvファイルから必要な入力データを読み込み、複数回テストを実行しようとしています。私はファイルの各行に対してテストを実行したい。csvファイルからSpring読み込みデータでテストを実行

私は手動でそれをやろうとしていましたが、私はSpring Batchを発見しました。私は春のバッチに新しいんだけど、私は次のよう考えた:

  • コマンドラインランナーを実装春のブートアプリケーションを作成します。
  • 実行方法でバネバッチジョブを起動する
  • このジョブは、csvファイルから行ごとにデータを読み込み、各行について、現在の行のデータに対して@Testメソッドを実行します。

この方法は問題ありませんか?それを行うより良い方法はありますか?どのようにそれを行うことができるかについてのサンプルコードを提供できますか?

ありがとうございます。

答えて

0

単体テストに不必要な複雑さを加えようとしているので、これはOKなアプローチではありません。&ジョブ、ジョブメタデータ、メモリデータベースなどの概念も画像に入ります。

また、バネバッチはファイル行だけを読み込むのではなく、バネバッチを使用することも義務付けられています。

この方法では、制御も逆になります。あなたのテストはすべてを制御し、ドライバーになるべきですが、このアプローチでは、バッチバッチジョブはテストドライバーになります。

あなたは、単に(実際のテストロジックを持っている各ライン&このプライベートメソッドの場合)BeforeまたはBeforeClass方法でファイルの行を読んで、ループ内でのプライベートテストメソッドを呼び出すマスター@Test方法を持っている必要があります。ループが成功すると、テストは成功します。

フレームワークで自動的にこれらのメソッドを呼び出す必要があるため、テストメソッドに@Testというアノテーションを付けます。それを手動で呼び出すと、その目的を破ります。

私があなたの要件を誤解しているかどうか教えてください。

+0

私はあなたが正しいと思うかもしれませんが、おそらくSpring Batchでそれをやっているのは複雑すぎます。手動で行う方が良い。私はその春のバッチが長いオフラインプロセス向けであることを読んできました。私がやりたいことは多かれ少なかれあなたの言うことですが、 '@Test'メソッドはファイルのすべての行に対して呼び出されるメソッドになります。外部メソッドは、ファイルを行単位で読み込み、現在の行のデータに対して '@Test'メソッドを呼び出すことです。 – choquero70

+0

あなたのコードから@Testメソッドを呼び出すことに同意しないので、私は答えを更新しました。 –

+0

申し訳ありませんが、私は混乱していると思います。私のアプリは別のもののテストです。だから、私は@Testを使う必要はないと思うかもしれませんが、テストしたい他のアプリのメソッドを呼び出すだけです。 – choquero70

関連する問題