Я сталкиваюсь с некоторой ошибкой, когда пытаюсь имитировать такие объекты, как Tracer и Span, в модульных тестах, если я использую версии Dalston.SR3 или Dalston.Release, но этой проблемы не возникает, если я использую версии Camden.SR6 или Camden.SR7.
Найдите пример кода здесь
Микросервис msvc-a использует версию Dalston и имеет два тестовых класса, где только класс, в котором я пытаюсь смоделировать объекты Tracer и Span, не работает.
Микросервис msvc-b использует версию Camden и имеет те же тестовые классы.
В то же время я не могу понять эту ситуацию, когда я нахожусь в режиме отладки в STS и почему я не вижу никакой трассировки ошибки или чего-то в этом роде... только NullpointerException.
public class AbstractSpanAccessorTest {
@MockBean
private Tracer tracer;
@MockBean
private Span span;
private Random random = new Random();
@Before
public void mockSpan() {
long id = createId();
Span spanMock = Span.builder().name("mock").traceId(id).spanId(id).build();
doReturn(spanMock.traceIdString()).when(span).traceIdString();
doReturn(span).when(tracer).getCurrentSpan();
doReturn(span).when(tracer).createSpan(anyString());
}
private long createId() {
return random.nextLong();
}
}