-2
Java Web Springアプリケーションでは、外部プログラムを呼び出す必要があります。それらはいくつかのREST API呼び出しではなく、ファイルシステム上のいくつかのシステムバイナリです。JUnitで外部プログラム呼び出しを模擬する方法
これらの呼び出しを効率的に単体テスト/模擬するにはどうすればよいですか?あなたは抽象に考える必要が
おかげ
Java Web Springアプリケーションでは、外部プログラムを呼び出す必要があります。それらはいくつかのREST API呼び出しではなく、ファイルシステム上のいくつかのシステムバイナリです。JUnitで外部プログラム呼び出しを模擬する方法
これらの呼び出しを効率的に単体テスト/模擬するにはどうすればよいですか?あなたは抽象に考える必要が
おかげ
。
例:あなたが
interface BinaryRunner {
void runBinary(String command, String... args);
}
class BinaryRunnerImpl implements BinaryRunner { ...
のようなものを作成することができます(もちろん、これは一例であり、私は完全に左のように私たちのエラー処理パス)
そして、あなたの「生産」のコードでは、という使用していますうーん、バイナリを実行する。そして今、BinaryRunnerのインスタンスを模擬し、それを実動コードに渡すことができます。プロダクションコードが呼び出しを行います。あなたはそれを確認するためにモックを使用することができます。
最後に:もちろん、BinaryRunnerの実装をテストすることは不明瞭
;-)少し難しいかもしれない - 私はあなたが求めているものを得ることはありません。 –
'class MyExternalBinary'内の呼び出しを抽象化します。そのクラスを嘲笑してください。 –