Как мне посмеяться над полным ответом методов Future на supplyAsyn c? - PullRequest
1 голос
/ 13 марта 2020

public class Test {
    public Obj func() {
        CompletableFuture<Obj> completableFuture = CompletableFuture.supplyAsync(new ContextSupplier<Obj> {
            public Obj onGet() {
               return otherClass.giveMeObj("X", "Y");
            }
        });
        // some business logic
        return completableFuture.get();
    }
}

class Obj {
    String s;
}

В приведенном выше фрагменте после отправки задачи в завершаемое будущее у меня есть несколько нетривиальных бизнес-логи c, а затем я возвращаю ответ задачи из завершаемого будущего. Есть ли способ, которым я могу издеваться над CompletableFuture.supplyAsyn c () методы ответа.

1 Ответ

2 голосов
/ 14 марта 2020

Просто определите класс, скажем, Пример

public class Example {
   CompletableFuture<Obj> func(ContextSupplier<Obj> supplier) {
       <put code from your snippet here> 
   }
}

, затем смоделируйте этот класс, например, с помощью Mockito

Example exampleMock = mock(Example.class);
when(exampleMock.func(any(Class.class))).thenReturn( <put code for your mock here> );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...