我使用Spring Boot Metrics http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-metrics.html#production-ready-metrics来管理一些特定于域的计数器。
我的课程中有@Autowired org.springframework.boot.actuate.metrics.CounterService
,我正在增加针对特定领域事件的指标(解析我的请求的各个阶段)。
我想在我的测试中阅读这些指标(检查我的测试请求是否经历了所有必需的阶段),但CounterService
上没有get方法。我看到CounterService
的所有实现都有一些带有指标的private ConcurrentMap
,但是没有(干净的)方法来获取这个数据结构。
我正在使用Spring Boot 1.3.5.RELEASE
。
编辑: 我对集成测试感兴趣,如果可能的话,我不想模拟任何组件。
目前我正在使用针对/ metric端点的REST调用,并且我解析了返回的json,但我不喜欢这种方法。
答案 0 :(得分:1)
一种方法是使用模拟CounterService
,然后验证是否已在模拟上调用了预期的方法。
如果您更喜欢某种更符合集成测试的内容,那么您可以使用MetricReader
来读取CounterService
撰写的指标。您应该能够@Autowire
MetricReader
或MetricRepository
(后者是MetricReader
和MetricWriter
的组合)并致电findOne
。< / p>