將 Null 與 Mockito 匹配
瀏覽人數:857最近更新:
一、概述
在這個簡短的教程中,我們將使用 Mockito 檢查null是否作為參數傳遞給方法。我們將看到如何直接匹配null並使用ArgumentMatchers 。
2. 示例設置
首先,讓我們創建一個簡單的Helper類,其中包含一個單獨的concat()方法,返回兩個String的連接:
class Helper {
 String concat(String a, String b) {
 return a + b;
 }
 }我們現在將添加一個Main類。它的方法methodUnderTest()調用concat()以將String Baeldung與null連接起來:
class Main {
 Helper helper = new Helper();
 String methodUnderTest() {
 return helper.concat("Baeldung", null);
 }
 }3. 只使用精確值
讓我們設置測試類:
class MainUnitTest {
 @Mock
 Helper helper;
 @InjectMocks
 Main main;
 @BeforeEach
 void openMocks() {
 MockitoAnnotations.openMocks(this);
 }
 // Add test method
 }感謝@Mock我們創建了一個模擬的Helper 。然後我們通過@InjectMocks將它注入到我們的Main實例中。最後,我們調用MockitoAnnotations.openMocks()來啟用 Mockito 註釋。
我們的目標是編寫一個單元測試來驗證methodUnderTest()委託給concat() 。此外,我們要確保第二個參數為null 。讓我們保持簡單並檢查調用的第一個參數是Baeldung而第二個參數是null :
@Test
 void whenMethodUnderTest_thenSecondParameterNull() {
 main.methodUnderTest();
 Mockito.verify(helper)
 .concat("Baeldung", null);
 }我們調用Mockito.verify()來檢查參數值是否符合預期。
4.使用匹配器
我們現在將使用 Mockito 的ArgumentMatchers來檢查傳遞的值。由於第一個值與我們的示例無關,我們將使用any()匹配器:因此,任何輸入都將通過。要檢查第二個參數是否為null ,我們可以簡單地使用isNull() :
@Test
 void whenMethodUnderTest_thenSecondParameterNullWithMatchers() {
 main.methodUnderTest();
 Mockito.verify(helper)
 .concat(any(), isNull());
 }5.結論
在本文中,我們學習瞭如何使用 Mockito 驗證傳遞給方法的參數是否為null 。我們通過檢查精確值和使用ArgumentMatchers來做到這一點。
與往常一樣,代碼在 GitHub 上可用。
本作品係原創或者翻譯,採用《署名-非商業性使用-禁止演繹4.0國際》許可協議