2011-03-10 42 views
16

他們都似乎做同樣的事情 - 爲什麼你會使用一個優先於另一個?使用Mockito時,mock()和stub()之間有什麼區別?

org.mockito.Mockito.stub() 
org.mockito.Mockito.mock() 
+11

存根方法已被棄用,檢查文檔。根據安迪的說法,新的方法調用存根方式。 – Augusto 2011-03-10 14:47:31

+0

好的 - 謝謝,這樣更有意義! – Tom 2011-03-10 17:20:40

+0

@Augusto任何想法爲什麼'存根'被棄用?我只是好奇關鍵的區別是什麼。我試圖在項目的郵件列表上找到一些東西,但這並不容易。 – toniedzwiedz 2015-01-08 17:18:07

回答

15

您可以使用模擬對象來驗證您是否按照預期的方式調用了它。在Mockito中,模擬對象是自動存根,並且明確地進行驗證。

從的Mockito的"Why do we need another mocking framework?"

Separation of stubbing and verification. Should let me code in line with intuition: 
stub before execution, selectively verify interactions afterwards. I don’t 
want any verification-related code before execution. 

您可以存根調用的行爲他們是所謂的之前。例如(從家的Mockito頁):

when(mockedList.get(0)).thenReturn("first"); 

您可以驗證與嘲笑對象的交互他們是所謂的後。例如:

verify(mockedList).add("one"); 
+0

對不起 - 我的意思是方法,我已更新標題和問題。 – Tom 2011-03-10 14:43:51

+1

我接受這個答案,因爲它是有用的信息,但我的問題的真正答案是由奧古斯都給出 - 存根()已棄用。 – Tom 2011-03-10 17:20:04

相關問題