如何重现错误用完磁盘?

时间:2014-11-11 03:05:05

标签: java testing io

我正在复制一些问题来测试我的代码。它应该容忍一些网络问题,如connection rest和IO问题,如out of space

如何重现问题out of space

更新1:我得到了解决方案。我使用VirtualBox进行测试,只需将一个小磁盘附加到vm,放入一些虚拟数据来占用空间然后测试我的代码。

5 个答案:

答案 0 :(得分:3)

在你的单元测试中(我假设你有单元测试而你想在单元测试中重现你的错误)你可以使用mock而不是你写的实际文件流,比如说,在两个之后或者三次读取流,你的模拟会抛出错误。

您可以使用mockito库来执行此操作。

这将是这样的:

FileWriter myStream = mock(FileWriter.class);
when(myStream.write(any())).thenThrow(new ExceptionToThrowException());
// some code...
myObject.setFileWriter(myStream);
// more code ...

(上面的代码只是一个指导,我没有编译或测试它......)

答案 1 :(得分:1)

试试这个。一旦完成杀死这个java进程,然后删除文件“D:// toberemoved”

public static void main(String[] args) throws IOException {
    OutputStream os=new FileOutputStream(new File("D://toberemoved"));
    ObjectOutputStream oos=new ObjectOutputStream(os);

    while (true) {
        oos.write(2);
    }
}

答案 2 :(得分:0)

我认为你不能真正模拟出太空。但是为了您的测试,您可以创建一个临时分区,并可以填充一些垃圾。

答案 3 :(得分:0)

尝试使用您可以找到的最小的USB驱动器,并填写一个巨大的文本文件,或整个电影或照片集。

答案 4 :(得分:0)

如果你在Linux上,

LVM是你的朋友。但是,嘲笑在这里应该更好。结帐MockitoPowerMock