<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Mockito – 驗證具有不同參數的多個方法調用 > 原文: [https://howtodoinjava.com/mockito/verify-multiple-method-arguments/](https://howtodoinjava.com/mockito/verify-multiple-method-arguments/) 學習編寫[單元測試](https://howtodoinjava.com/mockito/junit-mockito-example/),該單元測試使用不同的參數多次調用一個方法,然后分別驗證方法調用和方法參數。 ## 1\. 驗證具有不同參數的多個方法調用 給定的單元測試模擬了[`HashMap`](https://howtodoinjava.com/java-hashmap/)類,并在`put(key, value)`代碼中調用了兩次。 然后,它驗證該方法已被調用兩次。 該測試進一步分別驗證所有不同的方法參數。 ```java import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.times; import java.util.Arrays; import java.util.HashMap; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) public class MockitoExample { @Mock HashMap<String, Integer> hashMap; @Captor ArgumentCaptor<String> keyCaptor; @Captor ArgumentCaptor<Integer> valueCaptor; @Test public void saveTest() { hashMap.put("A", 10); hashMap.put("B", 20); //1\. Verify method was invoked N times Mockito.verify(hashMap, times(2)).put(keyCaptor.capture(), valueCaptor.capture()); List<String> keys = keyCaptor.getAllValues(); List<Integer> values = valueCaptor.getAllValues(); //2\. Verify method argument values as list assertEquals(Arrays.asList("A", "B"), keys); assertEquals(Arrays.asList(Integer.valueOf(10), Integer.valueOf(20)), values); //3\. Verify method arguments separately assertEquals("A", keys.get(0)); assertEquals("B", keys.get(1)); assertEquals(Integer.valueOf(10), values.get(0)); assertEquals(Integer.valueOf(20), values.get(1)); } } ``` ## 2\. 解釋 為了捕獲并驗證多次調用某個方法時傳遞給該方法的所有方法參數,我們將遵循以下步驟: * 使用`Mockito.verify(mock, times(n))`驗證方法是否已執行`'n'`次。 * 創建與方法中的參數數量一樣多的`ArgumentCaptor`實例。 在上面的示例中,我們測試了適用于鍵值對的`HashMap`,因此我們創建了兩個`ArgumentCaptor`實例–一個用于鍵,另一個用于值。 * 使用`ArgumentCaptor.getAllValues()`檢索所有執行期間傳遞給一個方法參數的所有值。 它返回傳遞的參數值的`List`。 * 我們可以使用`assertEquals(expected, result)`來驗證預期的多個參數是否與`ArgumentCaptor`的檢索值匹配。 將有關多次調用方法的問題交給我,并在基于模擬的單元測試中驗證其方法**不同的參數**值。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看