@BeforeEach
    void setUp() {
        RequestTargetCache.clearCachedPaths();
        requestLogQueue.clear();
        final DecoratingHttpClientFunction requestLogRecorder = (delegate, ctx, req) -> {
            ctx.log().whenComplete().thenAccept(requestLogQueue::add);
            return delegate.execute(ctx, req);
        };

        final URI uri = server.httpUri(GrpcSerializationFormats.PROTO);
        blockingStub = GrpcClients.builder(uri)
                                  .maxResponseLength(MAX_MESSAGE_SIZE)
                                  .decorator(requestLogRecorder)
                                  .build(TestServiceBlockingStub.class);
        asyncStub = GrpcClients.builder(uri.getScheme(), server.httpEndpoint())
                               .decorator(requestLogRecorder)
                               .build(TestServiceStub.class);
        unitTestBlockingStub = GrpcClients.builder(uri)
                                          .maxResponseLength(MAX_MESSAGE_SIZE)
                                          .decorator(requestLogRecorder)
                                          .build(UnitTestServiceBlockingStub.class);
        unitTestAsyncStub = GrpcClients.builder(uri.getScheme(), server.httpEndpoint())
                                       .decorator(requestLogRecorder)
                                       .build(UnitTestServiceStub.class);
    }
Must be at least {@link #unaryPayloadLength()}, plus some to account for encoding overhead.
grpc/src/test/java/com/linecorp/armeria/client/grpc/GrpcClientTest.java