存根和在 mockito 中的区别

2022-09-01 01:27:19

我是嘲笑的新手。

需要知道存根和何时之间的区别

      1. stub(cpproxy.getBinList()).toReturn(gettestbins());
      2. when(cpproxy.getBinList()).thenReturn(gettestbins());

这两者之间有什么区别?


答案 1

实际上,它们在技术上是相同的。当Mockito第一次被创建时,我们谈论的是存根,所以词汇遵循这个想法。后来人们认为最好在交互中思考而不是技术术语,所以词汇遵循何时......然后。。。风格。词汇的这种变化有助于人们思考物体之间的互动消息传递。这是面向对象语言中最有趣的想法(消息传递)(引用Alan Kay的话)。

如今,测试方法已经发展到行为驱动开发(来自Dan North),这几乎是同样的事情,但在设计时更加关注行为。为了反映这种想法,人们要求Mockito提供一个反映这种变化的API。所以你也使用给定的...将。。。风格从BDDMockito

given(the_type.performs_that()).willReturn(something)

这是我现在的首选词汇,因为我使用测试来驱动我的对象设计。


答案 2

推荐