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进行单元测试,你不需要担心使用一些可能或可能不工作的回调实现.你嘲笑回调,所以你不用担心. 您仍然可以通过独立测试回调代码,并单独测试回调用户(使用回调模拟器),或者通过投入集成测试来实现良好的测试,您可以将完全配置的组件作为整个. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |