JUint Mockito使用入門

2022-06-21 03:00:11 字數 2693 閱讀 6030

在我們進一步討論之前,讓我們探索幾種不同的方法來啟用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把他們識別出來用空內...