虽然这个问题已经得到了回答,但我仍然不清楚在嘲弄中应该使用哪一个
当参考spock时。朗·莫金加皮。java
。我看不出它们之间有什么区别。
留档为Mock
是说
Person person = Mock() // type is Person.class, name is "person"
Spy
的文档中说
Person person = Spy() // type is Person.class, name is "person"
存根
的留档是说
Person person = Stub() // type is Person.class, name is "person"
这清楚地表明,这两者之间没有区别。那么,我们为什么要采用这三种嘲弄策略,以及在当时和何时使用它们之间的具体区别。
如果它是一个带有示例代码的答案,那将非常有帮助。
从https://github.com/spockframework/spock/blob/master/docs/interaction_based_testing.adoc
存根是使协作者以某种方式响应方法调用的行为。当存根一个方法时,你不在乎该方法是否会被调用,以及调用多少次;您只希望它在被调用时返回一些值,或执行一些副作用。
间谍总是以真实的物体为基础。因此,必须提供类类型而不是接口类型,以及该类型的任何构造函数参数。对间谍的方法调用会自动委托给真实对象。同样,从真实对象的方法返回的值通过spy传递回调用方。
我试图理解西农图书馆的假、间谍、存根和模拟之间的区别,但无法清楚地理解。 有人能帮我了解一下吗?
当我尝试执行以下操作时: 我得到以下错误: 但是,当我执行时,它工作得很好。 有什么想法吗?我在类中有一个随机生成器(ak),所以我需要间谍而不是嘲笑。 谢谢。
我需要执行从Micronaut到Spring应用程序的远程调用。为了创建必要的bean,我创建了一个工厂: 在我的Spock集成测试中,我需要模拟这些bean,我根据Micronaut文档进行了尝试:https://docs.micronaut.io/latest/guide/index.html#replaces 这导致了这样的测试: 这个解决方案效果不佳。如果这两个测试是单独运行的,那么这两个
下面是我的Spock单元测试: 下面是mock: 当我运行此命令时,我得到: 它在第18行引用的空对象要么是,要么是它的映射。为什么啊?
问题内容: 我是mockito的新手。 需要知道存根和时间之间的区别 两者之间有什么区别? 问题答案: 实际上,它们在技术上是相同的。最初创建Mockito时,我们是在谈论存根,因此词汇遵循了这个想法。后来人们认为最好是用 交互 而非 技术 术语来思考,因此词汇表遵循的是 ……当时……之后的 风格。词汇上的这种变化有助于人们思考 对象* 之间的 交互 , 消息传递 。在面向对象的语言( 引用Ala
我在spock和groovy的初始阶段,我试图测试一个简单的Spring启动应用程序,并获得 下面是我的java和groovy代码以及异常详细信息 TestController.java TestControllerSpec。棒极了 我确信我的代码遗漏了什么