### Question:
SpanBuilder implements Tracer.SpanBuilder { @Override public Tracer.SpanBuilder addReference(String type, io.opentracing.SpanContext referredTo) { if (referredTo == null || !(referredTo instanceof SpanContext)) { return this; } if (CHILD_OF.equals(type) || FOLLOWS_FROM.equals(type)) { parent = (SpanContext) referredTo; Reference.Builder refBuilder = Reference.newBuilder(); refBuilder.setSpanContext(parent.getInnerSpanCtx()); if (CHILD_OF.equals(type)) { refBuilder.setRelationship(Relationship.CHILD_OF); } else { refBuilder.setRelationship(Relationship.FOLLOWS_FROM); } grpcSpan.addReferences(refBuilder); } return this; } SpanBuilder(String operationName, AbstractTracer tracer); @Override Tracer.SpanBuilder asChildOf(io.opentracing.SpanContext parent); @Override Tracer.SpanBuilder asChildOf(io.opentracing.Span parent); @Override Tracer.SpanBuilder addReference(String type, io.opentracing.SpanContext referredTo); @Override Tracer.SpanBuilder ignoreActiveSpan(); Tracer.SpanBuilder withTag(String key, String value); Tracer.SpanBuilder withTag(String key, boolean value); Tracer.SpanBuilder withTag(String key, Number value); Tracer.SpanBuilder withTag(io.opentracing.tag.Tag<T> tag, T value); Tracer.SpanBuilder withStartTimestamp(long microseconds); @SuppressWarnings({"WeakerAccess", "UnusedReturnValue", "SameParameterValue"}) Tracer.SpanBuilder withTraceIdAndSpanId(long traceId, long spanId); @SuppressWarnings("WeakerAccess") Iterable<Map.Entry<String, String>> baggageItems(); @Override io.opentracing.Span start();  }### Answer:
@Test public void testStart_asFollowsFromSpanContext() throws Exception { undertest.addReference(FOLLOWS_FROM, context); verifySettingsFromParent(); }