Эквивалент doAnswer () в Споке - PullRequest
0 голосов
/ 06 ноября 2018

Я новичок в Споке и пытаюсь достичь следующего сценария:

@Test
public void asynchronousMethodTest() {
    JsonObject jsonObject = new JsonObject();
    jsonObject.put("name", "Lilly").put("city", "Glendale");
    AsyncResult<JsonObject> asyncResult = Mockito.mock(AsyncResult.class);
    when(asyncResult.succeeded()).thenReturn(true);
    when(asyncResult.result()).thenReturn(jsonObject);
    doAnswer(new Answer<AsyncResult<JsonObject>>() {
        @Override
        public AsyncResult<JsonObject> answer(InvocationOnMock invocation) throws Throwable {
            ((Handler<AsyncResult<JsonObject>>) invocation.getArguments()[1]).handle(asyncResult);
            return null;
        }
    }).when(someService).callSomeService(Mockito.any(), Mockito.any());
    childVerticle.asynchronousMethod();

    //verify(someService, times(1)).callSomeService(Mockito.any(), Mockito.any());
}

Что такое спок, эквивалентный приведенному выше коду?

1 Ответ

0 голосов
/ 06 ноября 2018

Да, это возможно, пожалуйста, посмотрите эту часть документации. Вот соответствующая часть:

subscriber.receive(_) >> { args -> args[0].size() > 3 ? "ok" : "fail" }

, где subscriber определено как a Mock.

...