Я тестирую выходной поток в java примерно так, как показано ниже.
Writer outputStream = getOutputStream(fileName);
if(outputStream != null) {
try {
outputStream.write(inputText);
}
finally {
outputStream.close();
}
}
else {
throw new IOException("Output stream is null");
}
Я пишу тест mockito, как показано ниже
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();
}
Проблема в том, что при создании OutputStreamWriter(new FileOutputStream(filename))
создается физический файл на диске.
Можем ли мы протестировать Outputstream.write
, фактически не записывая файл на диск?
Спасибо ананд
OutputStreamWriter
- я не вижу этого в вашем коде. Я предполагаю, что это внутриgetOutputStream
- за исключением того, что вы отключили этот метод. Вам нужно опубликовать весь свой код, если вы хотите, чтобы люди хорошо помогали вам. Кроме того,getOutputStream
, вероятно, следует назвать как-то иначе (возможно,makeWriter
), потому что он не получаетOutputStream
. - person Dawood ibn Kareem   schedule 18.02.2012