首頁  >  文章  >  Java  >  如何在 Mockito 中將參數傳回模擬方法?

如何在 Mockito 中將參數傳回模擬方法?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-23 22:13:02681瀏覽

How to Return an Argument to a Mocked Method in Mockito?

如何使用 Mockito 讓模擬方法返回傳遞給它的參數

Mockito 是 Java 模擬框架,允許建立模擬物件用於測試目的。模擬方法有助於獨立於其依賴項來測試程式碼。在這種情況下,我們想要模擬一個方法以傳回在方法呼叫期間傳遞給它的值。

解決方案:

自 Mockito 版本 1.9.5 起在 Java 8 中,可以利用 lambda 表達式來實現所需的功能。具體方法如下:

<code class="java">when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);</code>

在此 lambda 表達式中,i 表示 InvocableOnMock 的實例,i.getArguments()[0] 檢索傳遞給模擬方法的第一個參數。

舊版的替代解決方案:

對於舊版的 Mockito,可以實現答案以達到相同的結果。以下是範例:

<code class="java">when(mock.myFunction(anyString())).thenAnswer(new Answer<String>() {
    @Override
    public String answer(InvocationOnMock invocation) throws Throwable {
        Object[] args = invocation.getArguments();
        return (String) args[0];
    }
});</code>

在此 Answer 實作中,從 InvocableOnMock 實例中擷取參數數組,並傳回第一個參數(字串)。

使用這些方法,您可以在 Mockito 中配置模擬方法以根據傳遞給它們的參數返回值,從而允許更靈活和更現實的測試場景。

以上是如何在 Mockito 中將參數傳回模擬方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn