我想在我正在开发的小项目中实现JUnit,因为我想学习一些关于它的知识。
我阅读的教程都提到了具有特定输出的方法。
对我来说,我的输出是文件,我该怎么做?有没有简单的例子?有哪些方法可以帮助我完成这个任务?
这些文件是由一个空私有方法生成的原始文本文件。
我想在我正在开发的小项目中实现JUnit,因为我想学习一些关于它的知识。
我阅读的教程都提到了具有特定输出的方法。
对我来说,我的输出是文件,我该怎么做?有没有简单的例子?有哪些方法可以帮助我完成这个任务?
这些文件是由一个空私有方法生成的原始文本文件。
@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确保测试运行之前输出文件不存在。
junit.framework.Assert
和 org.junit.Test
,你正在使用 JUnit 4 吗? - Jon Freedmanjunitx.framework.FileAssert
类,该类来自于junit-addons项目。其他链接如下:
其中一个方法:
assertEquals(java.lang.String message,
java.io.Reader expected,
java.io.Reader actual)
之后,测试就非常容易了 - 您只需检查流即可。易于测试的代码通常等同于良好的代码。
虽然你的问题看起来很简单,但它确实触及了单元测试的核心,我们需要编写良好格式化的代码以便于测试。这就是为什么一些专家建议先编写单元测试,然后再编写实现类。
针对你的情况,我建议你允许你的方法执行并创建所需的文件,随后你的单元测试可以分析这些文件是否正确形成。