簡體   English   中英

在 Mockito 中捕獲 static 方法調用的 arguments

[英]Capture arguments of a static method call in Mockito

我正在嘗試使用 Mockito 在 android 工作室中對方法調用進行單元測試。 它是這樣的:

public static class DeviceMessageHandler extends Handler {
    public DeviceMessageHandler(Looper looper) {
        super(looper);
}

@Override
    public void handleMessage(Message msg) {

        try {
            switch (msg.what) {
                default:
                    String message = (String) msg.obj;

                    DeviceRequest deviceRequest = new Gson().fromJson(message, DeviceRequest.class);
                    String requestType = deviceRequest.getKey();
                    if (DeviceMessage.SOME_ACTION.equals(requestType)) {
                        sendResponseWithMessage(execId, COMMAND_STATE, "Not accepted");
                    }
                }
            }
        }
}

public static void sendResponseWithMessage(String execId, String commandState, String reasonIfAny) {
//  do some work
} catch (Exception e) {
        e.printStackTrace();
    }
}

所以在這里我可以調用sendResponsewithMessage。 我想檢查調用此方法時傳遞的參數。 問題是它是一個 static 方法,我不知道如何捕獲傳遞給 static 方法的參數。 我嘗試使用 PowerMock,但由於這是一個 android 項目,我無法使用 PowerMock。 有什么方法可以用預期值斷言方法調用上傳遞的參數?

這對我有用,用於在 android 中運行 PowerMock:

testImplementation 'org.mockito:mockito-core:3.7.7'
androidTestImplementation 'org.mockito:mockito-android:2.7.22'
testImplementation 'org.powermock:powermock-module-junit4:2.0.9'
testImplementation group: 'org.mockito', name: 'mockito-all', version: '2.0.2-beta'
testImplementation group: 'org.mockito', name: 'mockito-core', version: '3.9.0'
testImplementation group: 'org.powermock', name: 'powermock-api-mockito2', version: '2.0.9'

暫無
暫無

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

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