質問: バックグラウンドプロセスのテストの作成(バックグラウンドジョブなど) 私はいくつかのジョブが含まれているSpringを使用して構築されたWebアプリケーションを持っています。 典型的な仕事は、データベースを実行し、変更された顧客のリストを取得し、ファイルを生成し、それをFTPすることです。私の質問は、この仕事で単体テストをする方法です。 私は、ジョブの「ステップ」ごとに単体テストを書くべきですか? * 変更された顧客を取得する方法をテストします。 * ファイル生成コードをテストします。 * コードをFTPでテストする しかし、この場合、私は上記の仕事のための "統合"テストケースを見逃してしまいます。また、Emmaは、テストされていないコードがジョブの形であると報告しています。 どのような考えにも感謝します。 ありがとう!
回答: 単体テストは実際に一度に1つのクラスのみをテストしています。つまり、依存関係を模擬しなければならないということです。春はそれに最適です。 私は嘲笑をするためにアドバイスをMockitoにします。これはすばらしいツールであり、TDDを学ぶこともできます.TDDは美しいコードを書くための手段です。 統合テストは別のトピックであり、別の戦略が必要です。 データベースに対するテストは、AbstractTransactionalJUnit4SpringContextTestsを拡張することによって行われます。あなたはネット上の例を見つけるでしょう。一般的に、これらのテストを行うにはメモリ内のDBも使用します(h2はそれに適しています)。これは単位テスト段階で行うことができます。 ファイルの生成は単体テストとして行うことができます。ファイルを生成し、適切な内容を確認します。またはエラー... FTP部分については、ビルドスクリプトからFTPサーバーを起動できる場合を除いて、統合テストの一部であると言えます。