Ana*_*and 11 java testing tdd mockito
我正在测试java中的输出流,如下所示.
Writer outputStream = getOutputStream(fileName);
if(outputStream != null) {
try {
outputStream.write(inputText);
}
finally {
outputStream.close();
}
}
else {
throw new IOException("Output stream is null");
}
Run Code Online (Sandbox Code Playgroud)
我正在写一个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();
}
Run Code Online (Sandbox Code Playgroud)
问题是在创建OutputStreamWriter(new FileOutputStream(filename))
磁盘上创建物理文件时.
我们可以测试Outputstream.write
而不实际在磁盘上写文件吗?
谢谢阿南德
Pet*_*rey 13
您可以使用ByteArrayOutputStream将数据写入内存.您可以使用ByteArrayInputStream来读取它.
另一种方法是编写一个期望的OutputStream,它会在您尝试写入错误的字节时立即失败.这有助于确切了解测试失败的确切位置/原因.
归档时间: |
|
查看次数: |
13719 次 |
最近记录: |