2016-08-16 20 views
-2

Java Web Springアプリケーションでは、外部プログラムを呼び出す必要があります。それらはいくつかのREST API呼び出しではなく、ファイルシステム上のいくつかのシステムバイナリです。JUnitで外部プログラム呼び出しを模擬する方法

これらの呼び出しを効率的に単体テスト/模擬するにはどうすればよいですか?あなたは抽象に考える必要が

おかげ

+0

;-)少し難しいかもしれない - 私はあなたが求めているものを得ることはありません。 –

+1

'class MyExternalBinary'内の呼び出しを抽象化します。そのクラスを嘲笑してください。 –

答えて

2

例:あなたが

interface BinaryRunner { 
    void runBinary(String command, String... args); 
} 

class BinaryRunnerImpl implements BinaryRunner { ... 

のようなものを作成することができます(もちろん、これは一例であり、私は完全に左のように私たちのエラー処理パス)

そして、あなたの「生産」のコードでは、という使用していますうーん、バイナリを実行する。そして今、BinaryRunnerのインスタンスを模擬し、それを実動コードに渡すことができます。プロダクションコードが呼び出しを行います。あなたはそれを確認するためにモックを使用することができます。

最後に:もちろん、BinaryRunnerの実装をテストすることは不明瞭

関連する問題