作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我刚读了文章Programming by Coincidence .页面末尾有练习。一些代码片段是“巧合编程”的案例。但我无法弄清楚这篇文章中的错误:
This code comes from a general-purpose Java tracing suite. The function writes a string to a log file. It passes its unit test, but fails when one of the Web developers uses it. What coincidence does it rely on?
public static void debug(String s) throws IOException {
FileWriter fw = new FileWriter("debug.log", true);
fw.write(s);
fw.flush();
fw.close();
}
这有什么问题吗?
最佳答案
此代码依赖于这样一个事实,即在应用程序的执行目录中有一个名为 debug.log
的文件是可写的。 Web 开发人员的应用程序很可能没有设置此文件,并且当他尝试使用它时该方法失败。
此代码的单元测试将起作用,因为原始开发人员在正确的位置拥有正确的文件(并具有正确的权限)。这就是让单元测试成功的巧合。
关于java - “巧合编程”练习 : Java File Writer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2603871/
我是一名优秀的程序员,十分优秀!