[英]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.