我决定回到我的想法,将Kafka Metrics与Spring Boot Actuator集成,我在这里提到过:
https://github.com/spring-projects/spring-boot/issues/6227
到目前为止,我有一个单独的"沙盒"带有工作代码的项目,我想将它合并到Spring Boot中。现在我有点困惑。我的部分测试需要对Mock Kafka"超级安全"类:
package org.apache.kafka.common.metrics;
// some imports...
public final class KafkaMetric implements Metric {
private MetricName metricName;
private final Object lock;
private final Time time;
private final Measurable measurable;
private MetricConfig config;
KafkaMetric(Object lock, MetricName metricName, Measurable measurable, MetricConfig config, Time time) {
this.metricName = metricName;
this.lock = lock;
this.measurable = measurable;
this.config = config;
this.time = time;
}
// some good code here, but no public constructor and the class is final... of course.
}
但是在Spring Boot中没有使用powermock。
我该怎么办?
答案 0 :(得分:1)
在评论中得到您的确认后,我只是将我的评论复制为正确回答问题的有效答案。
您可以尝试使用Metrics.addMetric()
创建KafkaMetric
实例,然后通过KafkaStatisticsProvider.metricChange()
对其做出反应,您将在测试前在Metrics
实例中注册。当然,而不是Powermock。
我将在下周找时间为你的执行器项目做出贡献,以避免使用Powermock。