【发布时间】:2014-09-11 22:28:29
【问题描述】:
我们有一个 java web 应用程序,它生成文件 (zip) 并将其放到文件系统中。有没有办法将其带入测试自动化领域 - 即验证 a) 文件/数据包已生成 b) 数据包内容匹配和 c) 单个文件具有必要的数据。数据包的内容通常是 pdf、txt 和 xml 文件
是否有任何工具/方法可以有效地测试这个
【问题讨论】:
标签: java file unit-testing
我们有一个 java web 应用程序,它生成文件 (zip) 并将其放到文件系统中。有没有办法将其带入测试自动化领域 - 即验证 a) 文件/数据包已生成 b) 数据包内容匹配和 c) 单个文件具有必要的数据。数据包的内容通常是 pdf、txt 和 xml 文件
是否有任何工具/方法可以有效地测试这个
【问题讨论】:
标签: java file unit-testing
您可以使用来自 Junit 的TemporaryFolder:
TemporaryFolder Rule 允许创建保证在测试方法完成时被删除的文件和文件夹(无论是通过还是失败)
public class HasTempFolder {
@Rule
public TemporaryFolder folder = new TemporaryFolder();
@Test
public void testUsingTempFolder() throws IOException {
File createdFile= folder.newFile("myfile.txt");
File createdFolder= folder.newFolder("subfolder");
// ...
}
}
对于检查文件内容,FileUtils from Apache Commons IO 有很多非常有用的方法。
【讨论】:
TDD 方式是注入处理实际文件写入的模拟对象。
实际上,您可以只使用 JUnit 为测试用例的生命周期自动创建临时目录(使用 TemporaryFolder 规则;请参阅 http://junit.org/javadoc/4.9/org/junit/rules/TemporaryFolder.html)。
【讨论】: