出力ストリームをjavaで以下のようにテストしています。ファイルを作成せずにoutputstream.write(<String>)をテストする
Writer outputStream = getOutputStream(fileName);
if(outputStream != null) {
try {
outputStream.write(inputText);
}
finally {
outputStream.close();
}
}
else {
throw new IOException("Output stream is null");
}
私はあなたがディスク上の物理ファイルが作成されOutputStreamWriter(new FileOutputStream(filename))
を作成するときに問題がある
public void testFileWrite() throws IOException {
when(testObj.getOutputStream(outputFileNameValidValue)).thenReturn(outputStreamMock);
doNothing().when(outputStreamMock).write(Matchers.anyString());
doNothing().when(bufferedReaderMock).close();
testObj.write(outputFileNameValidValue, reveredFileInput);
verify(outputStreamMock).write(Matchers.anyString());
verify(outputStreamMock).close();
}
以下のようにmockitoテストを記述しています。
実際にファイルをディスクに書き込まずにOutputstream.write
をテストできますか?
おかげ アナンドは
明確にしてください - どこで 'OutputStreamWriter'を作成しない - 私はあなたのコードでそれを見ることはありませんが。私はそれが 'getOutputStream'の中にあると思います - あなたがこのメソッドを外したことを除いて。人々があなたを助けてくれるようにするには、すべてのコードを投稿する必要があります。また、 'OutputStream'を取得しないので、' getOutputStream'はおそらく別のもの(おそらく 'makeWriter')と呼ばれるべきです。 –
getOutputStreamメソッドです。理由は、私はmockitoはmthodを実行し、モックを返すことはありません希望とメソッドに移動した理由。私は間違っています。 – Anand
グーグルといくつかのドキュメントを読んだところ、PowerMockはこれを簡単に実行できることを発見しました。 expectNewまたはsuppressConstructorとWhitebox.setInsternalStateを使用します。 PowerMockでこのようなことをテストするのは簡単です。あなたのコメントと答えに感謝します..について、Anand Barhate – Anand