私は次の問題を抱えています:
次のAPIを使用したモジュールが提供されます。
public void start(InputStream input, OutputStream output,
InputStream error, PipeListener<T> listener)
このモジュールの目的は、メインシステムと外部プロセス(この場合はProcessのインスタンス)間の通信を容易にすることです。
私がやろうとしているのは、「モックプロセス」を実装することです。これは、実際にはThreadインスタンスですが、独自の疑似入力、出力、およびエラーストリームがあります。ここで重要なのは、ストリーム自体の性質です。たとえば、ストリームの実装は次のように返されます。
((MockProcess)mockProcess).getInputStream()
機能的に同一であること
((Process)realProcess).getInputStream().
すべての意図と目的のために、それらは完全に交換可能でなければなりません。
これを実現するには、(それぞれ)どのInputStreamおよびOutputStream実装を使用する必要がありますか?私が見つけた唯一の提案は、パイプストリームを使用することです...しかし、これは本当に最良のオプションですか?