java - 为装饰器模式编写junit测试的tdd步骤

标签 java unit-testing junit tdd

Is it possible to write unit tests for below piece of functionality ?

或者,

Is it possible to develop below piece of functionality using TDD ?

public ZipInputStream getZipInputStream(File zipFile) throws FileNotFoundException {
        ZipInputStream zipInputStream = new ZipInputStream(
                new FileInputStream(zipFile));
        return zipInputStream;
}

我知道这个问题可能听起来很愚蠢,但作为 TTD 的新手,我无法找到上述问题的任何解决方案:) 。

最佳答案

您合二为一地提出了两个问题。

Is it possible to write unit tests for below piece of functionality?

大多数人不会将此功能的测试视为“单元测试”,因为它必须与文件系统交互。因此,它更像是集成测试而不是单元测试。然而,无论可能与否,这都不是一个好主意。这里没有什么值得测试的。这个方法本身没有任何逻辑,所以测试它没有任何收获。您要测试的只是 Java API。

Is it possible to develop below piece of functionality using TDD?

使用 TDD 时,您编写的代码可以满足明确的、可测试的要求。这么小的东西不太可能有自己的要求。编写此代码的要求与处理 zip 文件中的数据有关。因此,您将编写一个方法,其功能远不止于此 - 当然,首先要为该方法编写测试。

但是,TDD 流程的第三步是重构。 (记住“红色”-“绿色”-“重构”-“红色”-“绿色”-“重构”)。您很可能最终会编写您所引用的方法;不是通过尝试使测试起作用,而是通过在重构步骤中从更大的方法中提取它。所以答案是肯定的,可以开发此功能,但很可能是在“重构”步骤中,而不是在“绿色”步骤中。

关于java - 为装饰器模式编写junit测试的tdd步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23260378/

相关文章:

java - 从 Groovy 测试用例模拟 Java 类

java - 当 setResizeable(false) 时,循环中创建的 Frame 和 Canvas 变得大于指定值

c# - Rhino Mocks - 我们真的需要 stub 吗?

unit-testing - 我如何在Dart中的then语句中进行测试

javascript - 测试 AngularUI Bootstrap 模式实例 Controller

java - Async AssertionError 未使测试用例失败

java - org.junit 包和 junit.framework 包有什么区别?

java - 将数组反序列化为自定义列表实现的 Jackson 全局设置

java - 有没有办法将 Gluon Mobile (javafxports) 与 native android 代码混合?

java - 如何在 `Java Swing` 中获取鼠标悬停事件