测试片段1示例:
File file = new File("aa.txt");
delFlg = file.delete();
if (delFlg) {
   logger.log("Success");
else {
   logger.log("Error");
   return;

}
测试片段2示例:
 FileOutputStream os = null;
        try {
            。
            os = new FileOutputStream(file);
           。
        } catch (FileNotFoundException e) {
            return true;
        } catch (IOException ioe) {
            return true;
        } finally {
            if (null != os) {
                try {
                    os.close();
                } catch (IOException e) {
                    return true;
                }

            }
        }    }
我要问的是:写JUnit的时候,如何覆盖到片段(1)(2)的红色部分,也就是如何做出文件删除失败和OS关闭出现IOException。
希望做过或者知道的留个法子,先谢了。

解决方案 »

  1.   

    这个只能假定,junit也是这个思想呀。实际作出来有点困难吧。
      

  2.   

    第一种情况很好模拟哦,正在使用的文件是不能删除的
    第二种情况可以试试编辑文件,但是程序中文件IO太快了,可以让线程先sleep一会儿再关闭IO
      

  3.   

    感谢几位,这些我知道。关键是DJunit,回归测试。要用程序来实现。
    第一个CASE很好模拟,先整个IO流操作某个TEMP文件,先不关闭这个流,然后对齐删除,必定删除失败。
    第二个CASE比较难以模拟,想了好多办法都不行。最后放弃了。
    关于第二个CASE,如果大家有什么想法或者办法,希望大家给我留言。
      

  4.   

    addReturnValue("FileOutputStream", "close", new IOException());