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

前端之家收集整理的这篇文章主要介绍了java – 如何单元测试回调逻辑?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
更完整的问题是,假设有一个依赖关系,期望回调作为参数,那么我如何编写一个涵盖回调逻辑的单元测试,并且仍然可以模拟依赖关系?
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进行单元测试,你不需要担心使用一些可能或可能不工作的回调实现.你嘲笑回调,所以你不用担心.

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

猜你在找的Java相关文章