如何创建模拟

时间:2015-04-05 10:28:53

标签: java unit-testing mocking

我的问题是如何创建模拟对象而不是如何使用库创建模拟对象

我查看了Mockito库源代码,但我不明白它是如何完成的。我在互联网上搜索过,但文章解释了什么是模拟对象以及如何使用库创建它们。

对于动态编程语言,也许它很简单,因为我们可以改变方法,变量但是它是如何在静态编程语言中完成的(例如Java)

1 个答案:

答案 0 :(得分:1)

让我们从一个模拟开始:一个对象,你可以设置预期被调用的方法,和/或这些方法的参数和/或这些方法的调用计数。<登记/>
模拟被发送到测试对象,以模仿某些依赖关系,而不必使用真实代码(在许多情况下,这是有问题/危险的,如处理支付网关)。

由于模拟将需要拦截对所有(或某些部分模拟)方法的调用,因此有几种方法可以实现,主要取决于语言提供的功能。特别是在Java中,这可以通过代理类来实现:https://stackoverflow.com/a/1082869/1974224,这种方法在依赖依赖关系时强迫您(但以一种好的方式)在代码中使用接口。