バックグラウンドプロセスのテストの作成(バックグラウンドジョブなど)

私はいくつかのジョブが含まれているSpringを使用して構築されたWebアプリケーションを持っています。

典型的な仕事は、データベースを実行し、変更された顧客のリストを取得し、ファイルを生成し、それをFTPすることです。私の質問は、この仕事で単体テストをする方法です。

私は、ジョブの「ステップ」ごとに単体テストを書くべきですか?

  • 変更された顧客を取得する方法をテストします。
  • ファイル生成コードをテストします。
  • コードをFTPでテストする

しかし、この場合、私は上記の仕事のための "統合"テストケースを見逃してしまいます。また、Emmaは、テストされていないコードがジョブの形であると報告しています。

どのような考えにも感謝します。

ありがとう!

1

2 答え

単体テストは実際に一度に1つのクラスのみをテストしています。つまり、依存関係を模擬しなければならないということです。春はそれに最適です。

私は嘲笑をするためにアドバイスをMockitoにします。これはすばらしいツールであり、TDDを学ぶこともできます.TDDは美しいコードを書くための手段です。

統合テストは別のトピックであり、別の戦略が必要です。

データベースに対するテストは、AbstractTransactionalJUnit4SpringContextTestsを拡張することによって行われます。あなたはネット上の例を見つけるでしょう。一般的に、これらのテストを行うにはメモリ内のDBも使用します(h2はそれに適しています)。これは単位テスト段階で行うことができます。

ファイルの生成は単体テストとして行うことができます。ファイルを生成し、適切な内容を確認します。またはエラー...

FTP部分については、ビルドスクリプトからFTPサーバーを起動できる場合を除いて、統合テストの一部であると言えます。

0
追加された

各ステップごとに単体テストを書く必要があります。たぶんあなたはいくつかの方法を模倣する必要があります。

そして、全体を検証するための統合テストを書くことができますが、テストでは埋め込みFTPサーバーを使用してFTPサーバーなどの一部をスタブする必要があります。

0
追加された