java - 如何使用junit测试基于kafka的父子项目
问题描述
子模块接收来自父卡夫卡生产者的请求。子模块只有 kafak 接收和发送功能。而父母从 rest api 获得请求,然后它产生给孩子的 kafka 侦听器。
我想为上述项目结构编写集成测试用例。我想测试整个应用程序,即接收其余的 api 调用,然后将请求转发到子模块并发送回响应。
这是项目结构
这是初始请求所在的 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");
}
}
儿童 kafka 接收器和生产者
@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);
}
}
我应该在哪里以及如何编写测试用例?即在父模块或子模块中
解决方案
推荐阅读
- c++ - 为什么即使不涉及签名类型,std::push_heap 也会生成 -Wstrict-overflow=3 警告?
- sql - 根据另一列中的值拆分列中的数据
- json - 使用 tkinter 文本框编辑 JSON 文件
- python - inkex.py TypeError: write() 参数必须是 str,而不是字节
- excel - 如何在 Excel for Mac OSX 上发出 HTTP 请求(查询 json 数据/API)
- php - 与令牌数不匹配 - 查询:SELECT COUNT(event) FROM qa_eventlog WHERE datetime >= FROM_UNIXTIME(?) AND
- javascript - 如何在textarea中用句点替换逗号+句点?
- javascript - 名称以 $ 开头的 javascript 变量有时会产生错误
- html - 为什么 SVG 元素不能在 ios 设备上运行?
- sql - BigQuery 错误“查询未返回任何结果”