我有一个写入具有给定名称的文件的方法。我是否必须测试此方法,如果是,我应该测试它?
public void record(Object o){
try{
FileWriter fileStream = new FileWriter("data.txt", true);
BufferedWriter out = new BufferedWriter(fileStream);
out.write(o.toString());
out.newLine();
out.close();
} catch (Exception e){
System.err.println("Error: " + e.getMessage());
}
}
答案 0 :(得分:3)
您是否需要测试是否是您项目负责人的问题。如果确定你应该写一些测试,那么我至少会测试这些情况
答案 1 :(得分:2)
问题的答案“我应该测试一下吗?”总是“是”。现在,您可能无法或可能不知道如何,或没有时间,或被允许或想要,但这不会改变答案。
答案 2 :(得分:2)
总是欢迎测试,但在这种情况下,彻底的代码审查可能会有所帮助。编写一个能够发现的测试很难:
out
可能无法正常关闭,导致文件描述符泄露,即当o.toString()
抛出异常时
如果它会抛出异常,堆栈跟踪将丢失(错误的异常处理)
如果Object o
没有覆盖toString()
它应该关心,该方法应该如何表现?
答案 3 :(得分:1)
还有一些代码审核建议:out.close()
应该在finally
块中(有自己的try / catch),您可能需要检查输入参数是否合理,您可能需要检查如果文件已存在且可写。另外,如果o
是String
并且有自己的换行符,会发生什么?