在我們進一步討論之前,讓我們探索幾種不同的方法來啟用mockito測試中注釋的使用。
方式一mockitojunitrunner
我們擁有的第乙個選擇是使用mockitojunitrunner注釋junit測試,如以下示例所示:
@runwith(mockitojunitrunner.class)
public class mockitoannotationtest
方式二 mockitoannotations.initmocks()另外,我們也可以通過呼叫mockitoannotations.initmocks()來以程式設計方式啟用mockito注釋:
@before
public void init()
方式三 mockitojunit.rule()或者,我們可以使用mockitojunit.rule(),如下所示:
public class mockitoinitwithmockitojunitruleunittest
在這種情況下,我們必須記住將rule成員設定為public。
mockito中使用最廣泛的注釋是@mock。我們可以使用@mock來建立和注入模擬例項,而不必手動呼叫mockito.mock。
在下面的示例中–我們將使用手動方式建立模擬arraylist,而不使用@mock注釋:
@test
public void whennotusemockannotation_thencorrect()
現在我們將做同樣的事情,但是我們將使用@mock注釋注入模擬:
@mock
listmockedlist;
@test
public void whenusemockannotation_thenmockisinjected()
請注意,在兩個示例中,我們如何與模擬物件進行互動並驗證其中的某些互動,只是為了確保模擬行為正確。
現在–讓我們看看如何使用@spy注釋監視現有例項。
在下面的示例中,我們使用舊方法建立乙個列表的spy,而不使用@spy注釋:
@test
public void whennotusespyannotation_thencorrect()
現在讓我們做同樣的事情–在列表上監視–但是使用@spy注釋:
@spy
listspiedlist = new arraylist();
@test
public void whenusespyannotation_thenspyisinjectedcorrectly()
請注意,像以前一樣,我們在這裡與間諜物件進行互動以確保其行為正確。在此示例中,我們:
接下來–讓我們看看如何使用@captor注釋建立argumentcaptor例項。
在下面的示例中–我們使用舊方法建立argumentcaptor,而不使用@captor注釋:
@test
public void whennotusecaptorannotation_thencorrect()
現在,出於相同的目的,使用@captor –建立乙個argumentcaptor例項:
@mock
list mockedlist;
@captor
argumentcaptor argcaptor;
@test
public void whenusecaptorannotation_thenthesam()
請注意,當我們取出配置邏輯時,測試如何變得更簡單、更可讀。
現在-讓我們討論如何使用@injectmocks注釋-將模擬字段自動注入到測試物件中。
在以下示例中,我們使用@injectmocks將模擬wordmap注入mydictionary dic:
@mock
mapwordmap;
@injectmocks
mydictionary dic = new mydictionary();
@test
public void whenuseinjectmocksannotation_thencorrect()
這是mydictionary類:
public class mydictionary
public void add(final string word, final string meaning)
public string getmeaning(final string word)
}
最後–這是有關mockito注釋的一些說明:
在本快速教程中,我們展示了mockito庫中注釋的基礎。
注:本文翻譯自原文: ,並且在此基礎上有改動。
Spring Cloud Stream使用入門
前面博文嘗試使用了srping cloudbus,裡面引入了spring cloud starter bus kafka和spring cloud starter bus amqp,實時上它們分別依賴了spring cloud starter stream kafka和spring cloud st...
使用WinDbg除錯SQL Server 入門
這篇文章我想 下sql server裡完全不同的領域 如果使用windbg 來自針對windows的除錯工具 除錯sql server。在我們進入枯澀細節之前,我想詳細解釋下為什麼選擇這樣晦澀的話題來寫這篇文章。在我們進入如何詳細配置windbg對sql serve除錯前,首先我想給你講下sql s...
WPS office使用入坑心得
vlookup匹配會失敗的場景 1.被匹配的那一列主鍵沒放在第一列 輸出結果及vlookup第三個引數的取值 1 2.資料框左上角帶有感嘆號 綠色小三角 可能會是資料裡面有空格或者回車 alt enter 或者資料左上方有逗號 該問題還沒尋找解決方式 解決方法 要使用ctrl h把他們識別出來用空內...