Как написать тестовый тест AdminCleint - PullRequest
0 голосов
/ 05 мая 2020

Я использую kafka и Spring и застрял, чтобы написать один тестовый пример Junit.

Ниже приведен фрагмент кода, который я хочу протестировать. вы можете увидеть KafkaAdminClient.create (это метод stati c, и я не могу высмеять его.

Могут ли некоторые мне подсказать, как я могу добиться для этого издевательства.

publi c

boolean isBrokerRunning() {
    boolean isKafkaRunning = true;
    try {
        ListTopicsResult topics = createAdminClient().listTopics();
        topics.names().get();
    } catch (InterruptedException | ExecutionException e) {
        isKafkaRunning = false;
    }
    return isKafkaRunning;
}

public AdminClient createAdminClient() {
    Properties properties = new Properties();
    properties.put("bootstrap.servers", bootstrapServers);
    properties.put("connections.max.idle.ms", 10000);
    properties.put("request.timeout.ms", 3000);
    return KafkaAdminClient.create(properties);
}

1 Ответ

0 голосов
/ 16 июля 2020

Я тоже столкнулся с той же проблемой. Проведя около 2 часов, мне удалось использовать MockAdminClient. Просто создайте MockAdminClient с фиктивными узлами и контроллером.

Node controller = new Node(0, "localhost", 8121);
List<Node> brokers = Arrays.asList(
    controller,
    new Node(1, "localhost", 8122),
    new Node(2, "localhost", 8123));
AdminClient mockAdminClient = new MockAdminClient(brokers, controller);

final NewTopic newTopic = new NewTopic("some_topic", 1, (short) 1);
mockAdminClient.createTopics(ImmutableList.of(newTopic));

assertTrue(testClass.topicExists("test_topic", mockAdminClient));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...