Я должен проверить свой класс с использованием объекта Kafka AdminClient. Итак, я должен издеваться над инициализацией этого объекта. Это выглядит так:
this.adminClient = AdminClient.create(kafkaAdmin.getConfig());
В моем тестовом классе я пытался использовать PowerMock для насмешки AdminClient.create stati c фабричный метод:
@RunWith(PowerMockRunner.class)
@PrepareForTest(AdminClient.class)
class KafkaHealthIndicatorTest {
private KafkaHealthIndicator kafkaHealthIndicator;
@BeforeEach
public void init() {
mockStatic(AdminClient.class);
AdminClient adminClient = mock(AdminClient.class);
when(AdminClient.create(anyMap())).thenReturn(adminClient);
KafkaAdmin kafkaAdmin = mock(KafkaAdmin.class);
kafkaHealthIndicator = new KafkaHealthIndicator(kafkaAdmin);
PowerMockito.mockStatic(AdminClient.class);
}
Но у меня есть ClassNotPreparedException:
org.powermock.api.mockito.ClassNotPreparedException:
[Ljava.lang.Object;@7dbf31b0
The class org.apache.kafka.clients.admin.AdminClient not prepared for test.
Почему? Я аннотировал свой тестовый класс с помощью @PrepareForTest (AdminClient.class).