繁体   English   中英

我将如何为此缓冲写入器 function 编写 JUnit 测试?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM