在Java中,FileOutputStream.close()可能会抛出IOException。 但我从来没有看到它发生过。 我怎么能产生这样的例外? 我需要制作这个。 谢谢。
答案 0 :(得分:3)
如果它足够重要,请编写单元测试以涵盖该方案。
考虑使用像Mockito这样的模拟框架来模拟您需要的行为,而无需修改代码。例如,您可以通过执行以下操作让FileOutputStream
抛出IOException
:
final FileOutputStream out = mock(FileOutputStream.class);
doThrow(new IOException()).when(out).close();
一旦你有了一个模拟FileOutputStream
,你就可以将它传递给被测系统,例如:
myComponent.writeTo(out);
其余由您决定,例如,您的系统在这种情况下应如何表现等......
答案 1 :(得分:2)
如果您的目标是测试发生IOException时会发生什么:
throw new IOException("Custom Message about the exception");
这将模拟抛出的异常,这样您就可以看到应用程序发生这种情况时会发生什么。
答案 2 :(得分:2)
创建一个程序,将文件写入USB,让它在关闭文件之前暂停,取出USB并等待程序尝试关闭文件。