0

I am writing test case of following method

class BeanDefinitions {
    public Customizer<ReactiveResilience4JCircuitBreakerFactory> apiEnrichmentLayerCircuitBreakerCustomizer(
            final HttpClientConfigurationProperties clientsConfig
    ) {
        return CircuitBreakerCustomizers.fromHttpClientConfig(
                API_ENRICHMENT_LAYER_CLIENT_ID,
                clientsConfig.getHttpClients().get(API_ENRICHMENT_LAYER_CLIENT_ID)
        );
    }
}

I want to mock the static method (CircuitBreakerCustomizers.fromHttpClientConfig) which is called in that class.(dont want to run that static method but when that static.method call then return something)

Assertions.assertNotNull(beanDefinitions.apiEnrichmentLayerCircuitBreakerCustomizer(clientsConfig));

I always get NPE as static method is performing some task which i don't want to execute.

Is there any possibility in mockito to achieve the same i.e mock inner static method?

fatherazrael
  • 5,511
  • 16
  • 71
  • 155

1 Answers1

0

Possible duplicate of Mocking static methods with Mockito.

You can mock static methods with latest Mockito using mockito-inline. For your case, it can be done in the following way:

@Test
void someTest() {
    var customizersStaticMock = Mockito.mockStatic(CircuitBreakerCustomizers.class);
    customizersStaticMock.when(() -> CircuitBreakerCustomizers.fromHttpClientConfig(Mockito.any(), Mockito.any())).thenReturn(someCustomizer);
}
mzlnk
  • 36
  • 2