【发布时间】:2014-04-24 05:16:49
【问题描述】:
是否可以为以下功能编写单元测试?
或者,
是否可以使用 TDD 开发以下功能?
public ZipInputStream getZipInputStream(File zipFile) throws FileNotFoundException {
ZipInputStream zipInputStream = new ZipInputStream(
new FileInputStream(zipFile));
return zipInputStream;
}
我知道这个问题可能听起来很傻,但作为 TTD 的新手,我无法为上述问题找到任何解决方案 :)。
【问题讨论】:
-
你的问题在哪里?提供一个.zip并测试是否成功,也可以测试异常的抛出。
-
@laune :据我了解,您想提供一个真正的 zip 文件。但我在某处读到,真正的 IO 交互不属于单元测试的范畴。单元测试依赖于模拟实例,而不是依赖于真实的文件系统对象、数据库对象等。
-
好吧,您总是可以编写一个模拟文件系统,将其添加到您的 (Linux) 内核中,等等。 ;-) -- 使用 DB 对象,并且有可以模拟的接口定义的 API,我同意。您可以使用 Readers 和 Writers 为算法编写模拟。但在这里,您正在测试代码调用硬编码类的构造函数,并使用硬编码文件作为参数。
标签: java unit-testing junit tdd