下面是一个使用JUnit编写Future回调的测试用例的示例:
import org.junit.Test;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import static org.junit.Assert.assertEquals;
public class FutureCallbackTest {
@Test
public void testFutureCallback() throws ExecutionException, InterruptedException {
// 创建一个CompletableFuture对象
CompletableFuture future = CompletableFuture.supplyAsync(() -> "Hello");
// 注册一个回调函数,当Future完成时会被调用
future.thenAccept(result -> {
// 在回调函数中对结果进行断言
assertEquals("Hello", result);
});
// 等待Future完成
future.get();
}
}
在上面的示例中,我们使用CompletableFuture.supplyAsync()
方法创建一个CompletableFuture对象。在thenAccept()
方法中,我们注册了一个回调函数,该函数在Future完成时被调用,接受Future的结果作为参数。在回调函数中,我们对结果进行断言,确保它与期望的值相等。
然后,我们使用future.get()
方法等待Future完成。这样,如果回调函数中的断言失败,将会抛出相应的异常,使测试失败。
这是一个简单的示例,你可以根据实际需求进行更复杂的测试。