Тестовый блок пошаговой функции не пройден - PullRequest
0 голосов
/ 24 апреля 2020

Модульный тестовый пример проходит, когда он является awsStepFunctionsAsyncClient.startExecutionAsyn c, но не работает для awsStepFunctionsAsyncClient.startExecution

 @Test
public void testStateMachineExecutionSuccess(){
    IngestionWorkflowMetadata executionInputs = prepareStateMachineInputs();
    try{
        when(awsStepFunctionsAsyncClient.startExecution(any(StartExecutionRequest.class))).thenReturn(startExecutionResult);
        stepFunctionUtility.startExecution(executionInputs);
        ArgumentCaptor<StartExecutionRequest> requestCaptor = ArgumentCaptor.forClass(StartExecutionRequest.class);
        verify(awsStepFunctionsAsyncClient, times(1)).startExecution(requestCaptor.capture());
        Assert.assertEquals(EXPECTED_STEP_FUNCTION_ARN, requestCaptor.getValue().getStateMachineArn());
        Assert.assertEquals(EXECUTION_ID, requestCaptor.getValue().getName());
        Assert.assertEquals(INPUT_STRING, requestCaptor.getValue().getInput());
    } catch (Exception e){ failTheTest(); }
}

1 Ответ

0 голосов
/ 25 апреля 2020

Я думаю, что тестовый случай не выполняется в строке

verify(awsStepFunctionsAsyncClient, times(1)).startExecution(requestCaptor.capture());

, поскольку awsStepFunctionsAsyncClient.startExecution не является асинхронным c. Время выполнения times(0) для syn c время вызова и время выполнения times(1) для asyn c вызов.

...