Почему ClassNotPreparedException бросает? - PullRequest
0 голосов
/ 03 марта 2020

Я должен проверить свой класс с использованием объекта 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).

...