MeterRegistry 计数器测试用例失败

Kok*_*kki 3 junit spring-boot micrometer spring-micrometer

我已经通过注入和增加计数在我的服务中实现了 Micrometer Prometheus 计数器,MeterRegistry如下所示,并且我还编写了一个测试用例,但是当我运行测试用例时,我得到:

“java.lang.NullPointerException:无法调用“io.micrometer.core.instrument.MeterRegistry.counter(String, String[])”,因为“this.meterRegistry”为空”。

服务文件:

@Autowired
private MeterRegistry meterRegistry;
    
public void counterIncrement() { 
    meterRegistry.counter("test_count").increment();
}
Run Code Online (Sandbox Code Playgroud)

测试用例文件:

@MockBean
private MeterRegistry registry;
     
@Test
void testCounter() {
    //  invoking counterIncrement();
}
Run Code Online (Sandbox Code Playgroud)

小智 6

您可以使用SimpleMeterRegistry在没有 Mockito 的情况下测试指标

  @Test
  void testCounter() {
    var meterRegistry = new SimpleMeterRegistry();
    Metrics.addRegistry(meterRegistry);

    //  invoke counterIncrement();

    var actual = meterRegistry.counter("test_count").count();
    
    assertEquals(1.0d, actual);
  }
Run Code Online (Sandbox Code Playgroud)