Как протестировать родительско-дочерние проекты на основе кафки с помощью junit - PullRequest
0 голосов
/ 17 сентября 2018

Дочерний модуль получает запрос от производителя родительского кафки.Дочерний модуль имеет только функции получения и отправки kafak.Принимая во внимание, что parent получает запрос от rest api, а затем выдает дочернему kafka listner.

Я хочу написать интеграционный тест для приведенной выше структуры проекта.Я хочу протестировать все приложение, т.е. получить вызов API остальных, а затем переслать запрос в дочерний модуль и отправить ответ обратно.

Вот структура проекта

enter image description here

Это контроллер API, в который попадает начальный запрос:

@Controller
@RequestMapping(value = "/api")
public class ApiController {

@Autowired
KafkaTemplate<String, String> kafkaTemple;

@RequestMapping(value={"/welcome"}, method = RequestMethod.POST)
@ResponseBody
public PojoClass welcomeUser(@RequestBody String request) {

    // TODO Prepares request to JSON format and forward towards child module
    kafkaTemple.send("ChildTopic", request);

    return new PojoClass("Test","Test Message String");
  }
}

Приемник и производитель дочерней кафки

@Component
@EnableKafka
public class KafkaReceiver extends config {

@Autowired
KafkaTemplate<String, String> kafkaTemple;

private static final String kafkaTopic = "ChildTopic";

@KafkaListener(topics = kafkaTopic)
public void listen(List<ConsumerRecord<String, String>> records) {

    // TODO Some parsing and validation

    System.out.println("Received request: " + records);
    kafkaTemple.send("ParentTopic", records + " :Response-true");

  }
}

Вот родительский приемник кафки

@Component
@EnableKafka
public class ParentKafkaReceiver extends config {

private static final String kafkaTopic = "ParentTopic";

@KafkaListener(topics = kafkaTopic)
public void listen(List<ConsumerRecord<String, String>> records) {

    System.out.println("Final result string: " + records);
  }
}

Гдеи как мне писать тестовые случаи?т.е. в родительском модуле или дочернем модуле

...