Я использую Quarkus 1.2.0.Final
.
У меня есть следующий клиент REST:
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@RegisterRestClient(configKey = "<some key>")
public interface SomeClient {
@POST
@Path("<some path>")
SomeResponse someMethod(SomeRequest request);
}
Этот компонент используется в других моих компонентах как зависимость.
И у меня есть следующий тестовый пример:
@QuarkusTest
class SomeTest {
@Test
void testGetTransactions() { }
}
class SomeClientImpl implements SomeClient {
@Override
public SomeResponse someMethod(SomeRequest request) {
// <the implementation doesn't matter>
return null;
}
}
Тест не пройден со следующим исключением:
Suppressed: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type com.example.client.SomeClient and qualifiers [@RestClient]
...
Почему тест не пройден? Если я уберу класс class SomeClientImpl implements SomeClient {...}
, тест пройден. Поэтому реализация интерфейса приводит к сбою теста, что странно.
Обновление 1:
Я попробовал следующий код и получаю то же исключение :
@QuarkusTest
class TransactionServiceImplTest {
@Test
void testGetTransactions() {
new SomeClient() {
@Override
public SomeResponse someMethod(SomeRequest request) {
// <the implementation doesn't matter>
return null;
}
};
}
}