如何比较 JUnit 测试用例中的文件?
2022-09-02 01:21:52
我想在我正在做的一个小项目上实现JUnit,因为我想学习一些关于它的知识。
我阅读的教程都引用了具有特定输出的方法。
在我的情况下,我的输出是文件,我该怎么做?任何简单的例子?任何可以帮助我的方法?
这些文件是由 void 私有方法生成的原始文本文件。
我想在我正在做的一个小项目上实现JUnit,因为我想学习一些关于它的知识。
我阅读的教程都引用了具有特定输出的方法。
在我的情况下,我的输出是文件,我该怎么做?任何简单的例子?任何可以帮助我的方法?
这些文件是由 void 私有方法生成的原始文本文件。
您希望为一组给定的输入获取正确的输出文件,并设置一个测试以使用这些输入调用 void 方法,然后将经过验证的输出文件与方法生成的内容进行比较。您需要确保有某种方法来指定方法的输出位置,否则您的测试将非常脆弱。
@Rule
public TemporaryFolder folder = new TemporaryFolder();
@Test
public void testXYZ() {
final File expected = new File("xyz.txt");
final File output = folder.newFile("xyz.txt");
TestClass.xyz(output);
Assert.assertEquals(FileUtils.readLines(expected), FileUtils.readLines(output));
}
使用 commons-io FileUtils 进行方便的文本文件比较,并使用 JUnit 的 TemporaryFolder 来确保在测试运行之前输出文件永远不存在。
使用 junitx.framework.FileAssert
class from junit-addons project。其他链接:
方法之一:
assertEquals(java.lang.String message,
java.io.Reader expected,
java.io.Reader actual)