我如何模拟可完成的Future的supplyAsync方法响应?

问题描述 投票:0回答:1

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;
}

在上述代码中,将任务提交给可完成的将来之后,我有了一些不平凡的业务逻辑,然后我从可完成的将来返回了任务的响应。有没有一种方法可以模拟CompletableFuture.supplyAsync()方法的响应。

java unit-testing junit java-8 completable-future
1个回答
0
投票

仅定义一个类,可以说示例

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

然后嘲笑此类e。 G。与Mockito

Example exampleMock = mock(Example.class);
when(exampleMock.func(any(Class.class))).thenReturn( <put code for your mock here> );
© www.soinside.com 2019 - 2024. All rights reserved.