[英]How would I write a JUnit test for this buffered writer function?
我编写了一个 class 文件,该文件生成另一个 class 文件。 我一直在为 class 中的所有方法编写 JUnit 测试,但我已经到了最后一种方法(它调用 class 中的先前方法来编写一个新文件)和。 如何为以下代码编写测试?
public void writeFile() {
try {
FileWriter newFile = new FileWriter(className + ".java");
BufferedWriter bw = new BufferedWriter(newFile);
bw.write(makeClassHeading());
bw.write(makeFields());
bw.write(makeConstructor());
bw.write(makeGetters());
bw.write(makeSetters());
bw.write(closeClass());
bw.close();
} catch (IOException e) {
System.out.println("Couldn't write the file.");
}
}
不要为 writeFile 编写单元测试,因为它会创建一个实际文件。 编写实际文件很慢,在单元测试中是不可取的。
相反,请注意 FileWriter 扩展了 Writer。 更改您的方法以使用 Writer,您将传入:
public void writeFile(Writer writer)
单元测试将创建一个 StringWriter 并将其传入:
StringWriter stringWriter = new StringWriter();
writeFile(stringWriter);
assert stringWriter has correct content
要写入实际文件:
writeFile( new FileWriter(className + ".java"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.