存根与mockito之间的区别

时间:2013-02-06 18:30:12

标签: java unit-testing junit4 mockito

我是mockito的新手。

需要知道存根和

之间的区别
      1. stub(cpproxy.getBinList()).toReturn(gettestbins());
      2. when(cpproxy.getBinList()).thenReturn(gettestbins());

这两者之间有什么区别?

1 个答案:

答案 0 :(得分:67)

实际上它们在技术上是一样的。当Mockito第一次创建时,我们讨论的是存根,所以词汇表遵循了这个想法。后来人们认为最好在交互而不是技术术语中思考,所以词汇表遵循时......然后...... 样式。 词汇量的这种变化有助于人们在对象之间考虑交互消息。这是面向对象语言(quoting Alan Kay)中最有趣的想法(消息传递)。

如今,测试方法已演变为行为驱动开发(来自Dan North),这几乎是一回事,但更关注设计时的行为。为了反映这种想法,人们要求Mockito提供反映这种变化的API。所以你也可以使用来自BDDMockito

given ... will ... 样式
given(the_type.performs_that()).willReturn(something)

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