簡體   English   中英

模擬調用 static 實用程序的方法 class

[英]Mock call to static method of a utility class

我需要為方法processNotification編寫單元測試。 但此方法在內部調用JsonUtility.getNotificationDTOFromMessage

調用時我需要返回值為null 我們如何通過使用 Mockito 來實現這一點?

我無法更改代碼,因為它不屬於我。

@Override
public void processNotification(String message) throws IOException {
    logger.info(" Processing the notifications");
    NotificationDTO notification = 
    JsonUtility.getNotificationDTOFromMessage(message);
    if (null == notification) {

您不能使用 Mockito 來模擬靜態方法。 如果您需要模擬靜態方法,請嘗試使用 PowerMockito

例如:PowerMockito.mockStatic(JsonUtility.class);

您不能使用 mockito 模擬靜態方法。但是如果可能,您可以操作您的輸入數據,以便它進入靜態方法並返回您想要的值。如果可能,您可以從您的測試方法傳遞 message = null。所以你可以測試你的方法。

現在 Mockito 的較新版本支持 static 方法 mocking。無需使用 PowerMockito 只需將您的版本升級到 3.4.0 +

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM