加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何单元测试回调逻辑?

发布时间:2020-12-14 16:38:21 所属栏目:Java 来源:网络整理
导读:更完整的问题是,假设有一个依赖关系,期望回调作为参数,那么我如何编写一个涵盖回调逻辑的单元测试,并且仍然可以模拟依赖关系? public class DoStuff { public void runThis(Runnable callback) { // call callback }}public class ClassUnderTest { private
更完整的问题是,假设有一个依赖关系,期望回调作为参数,那么我如何编写一个涵盖回调逻辑的单元测试,并且仍然可以模拟依赖关系?
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会导致回调逻辑未被测试.此外,回调逻辑似乎应该是私有的,所以我不期望直接测试它;也许这是我的一个误解.

由于回调是相当广泛的使用,我希望有一个常用的方法来测试它们,但我没有找到它.

解决方法

你不能在一个单一的测试.如果你模拟某些东西,它的嘲弄,这意味着它只能验证参数并模拟返回值(在测试中配置).

的确,嘲笑某事的整个方面是测试什么使用模拟的孤立.如果你想对DoStuff进行单元测试,你不需要担心使用一些可能或可能不工作的回调实现.你嘲笑回调,所以你不用担心.

您仍然可以通过独立测试回调代码,并单独测试回调用户(使用回调模拟器),或者通过投入集成测试来实现良好的测试,您可以将完全配置的组件作为整个.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读