Spring boot + Embedded Kafka + база данных h2 + юнит-тесты - PullRequest
0 голосов
/ 12 февраля 2019

Так что я использую этот пример Embedded Kafka и это тоже

Я немного изменил этот пример и обновил слушатель kafka с некоторой базой данных (например, h2db).

Теперь в моем модульном тесте, когда я хочу проверить, доступны ли данные в БД или нет, я получаю NULL.Также я не уверен, как проверить БД вручную, так как h2 является базой данных БД.

Вот обновленная часть: в классе приемника

@Autowired
DataTableRepository repository;

@KafkaListener(topics = "${kafkatest.topic}")
public void receive(ConsumerRecord<String, DataTable> consumerRecord) {
    LOGGER.info("received payload='{}'", consumerRecord.toString());
    repository.save(consumerRecord.value());
    latch.countDown();
}

И в модульном тесте:

@Autowired 
DataTableRepository repository;

@Test
public void testReceive() throws Exception {
DataTable table = new DataTable(1, "Sending with default template");

template.send(topic, table);

receiver.getLatch().await(10000, TimeUnit.MILLISECONDS);

DataTable dt = repository.getOne(table.getId());
assertNotNull(dt);
assertThat(receiver.getLatch().getCount(), equalTo(0L));
}

Но dt всегда становится нулевым.Также я не могу проверить базу данных, так как она останавливается после остановки теста.У кого-нибудь есть идеи, как сделать это работоспособным?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...