@Test protected void instrumentedClientAndServer(TestInfo testInfo) throws Exception {
    String testSuffix = testSuffix(testInfo);
    String traceId = newTraceId();

    Endpoint frontend = suffixServiceName(TestObjects.FRONTEND, testSuffix);
    Endpoint backend = suffixServiceName(TestObjects.BACKEND, testSuffix);
    Endpoint db = suffixServiceName(TestObjects.DB, testSuffix);

    List<Span> trace = List.of(
      Span.newBuilder().traceId(traceId).id("10").name("get")
        .timestamp((TODAY + 50L) * 1000L).duration(250L * 1000L)
        .kind(Kind.CLIENT)
        .localEndpoint(frontend)
        .build(),
      Span.newBuilder().traceId(traceId).id("10").name("get").shared(true)
        .timestamp((TODAY + 100) * 1000L).duration(150L * 1000L)
        .kind(Kind.SERVER)
        .localEndpoint(backend)
        .build(),
      Span.newBuilder().traceId(traceId).parentId("10").id("11").name("get")
        .timestamp((TODAY + 150L) * 1000L).duration(50L * 1000L)
        .kind(Kind.CLIENT)
        .localEndpoint(backend)
        .remoteEndpoint(db)
        .build()
    );

    processDependencies(trace);

    assertThat(store().getDependencies(endTs(trace), DAY).execute()).containsOnly(
      DependencyLink.newBuilder()
        .parent(frontend.serviceName())
        .child(backend.serviceName())
        .callCount(1)
        .build(),
      DependencyLink.newBuilder()
        .parent(backend.serviceName())
        .child(db.serviceName())
        .callCount(1)
        .build()
    );
  }
This tests we error prior to executing the call.
zipkin-tests/src/main/java/zipkin2/storage/ITDependencies.java