如何对回调逻辑进行单元测试?

安德鲁·怀特(Andrew White):

更完整的问题是,给定一个期望将回调作为参数的依赖项,我该如何编写一个覆盖回调逻辑并且仍然设法模拟依赖项的单元测试

public class DoStuff {
    public void runThis(Runnable callback) {
        // call callback
    }
}

public class ClassUnderTest {
    private DoStuff stuffToDo;

    public void methodUnderTest() {
        this.stuffToDo.runThis(/*a runnable with some logic*/)
    }
}

在上面的示例中,我将进行模拟,stuffToDo因为我应该验证调用和方法调用的模拟输出。但是,runThis模拟导致未测试回调逻辑。此外,回调逻辑似乎应该是私有的,因此我不希望直接对其进行测试。也许那是我的误解。

由于回调被广泛使用,我希望有一种通用的方法来测试它们,但我没有找到它。

hvgotcodes:

您无法进行单个测试。如果你假的东西,它的嘲笑,这意味着它只能验证参数,并模拟返回值(您在测试配置)。

确实,模拟某些东西的全部目的是测试隔离使用模拟的原因。如果您希望对进行单元测试DoStuff,则不必担心使用某些可能会或可能不会起作用的回调实现。您可以模拟回调,因此不必担心。

您仍然可以通过单独测试回调代码,单独测试回调用户(对回调使用模拟)并通过对集成测试进行适当的测试(在其中使用完全配置的组件作为测试对象)来进行良好的测试。整个。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何进行改装回调的单元测试?

单元测试回调

如何使用嵌套动作/回调对方法进行单元测试

如何使用 Cypress 对在 React 组件上调用的回调函数进行单元测试

如何使用sinon.js对回调函数的内容进行单元测试

如何使用junit对HttpClient重试逻辑进行单元测试

如何在JSP中对逻辑进行单元测试?

如何对涉及CLBeacons的逻辑进行单元测试?

如何对jinja2模板逻辑进行单元测试?

如何对pubsub进行单元测试接收回调

回调中的单元测试

单元测试Symfony的回调

JS,单元测试:期望回调

Kotlin 异步回调单元测试

如何对一个依赖于其注册回调的Angular服务进行单元测试?

如何对参数中的回调进行单元测试 - Kotlin

对WebView的WebViewClient回调的onPageStarted和onPageFinished进行单元测试

超时内未调用异步回调-对Typescript和Angular $ http服务进行单元测试

使用 Mockito|Android 对调用私有回调的方法进行单元测试

角度单元测试:如何对.map()进行单元测试?

如何将完成的回调与注入角度2单元测试结合

如何在JSON回调中执行猕猴桃单元测试?

如何在不调用应用程序回调的情况下运行单元测试

Swift:XCTest委托/协议回调(单元测试)

RhinoMocks中的单元测试回调函数Func <T>

异步回调的返回值(在单元测试中)

在silex中单元测试匿名回调路由

坚持如何使用tdd进行此业务逻辑的单元测试

使用TDD进行单元测试内部优化逻辑