Since spring-boot-test 2.4.0 update I got org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.test.web.reactive.server.WebTestClient': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: No suitable default ClientHttpConnector found
but when I check maven dependencies no reactive dependencies was found. After investigation I found discrepancy between spring-boot-test:2.3.5.RELEASE and spring-boot-test:2.4.0 in WebTestClientContextCustomizerFactory
:
2.3.5.RELEASE (and earlier):
public ContextCustomizer createContextCustomizer(Class<?> testClass, List<ContextConfigurationAttributes> configAttributes) {
return this.isWebClientPresent() && AnnotatedElementUtils.findMergedAnnotation(testClass, SpringBootTest.class) != null ? new WebTestClientContextCustomizer() : null;
}
private boolean isWebClientPresent() {
return ClassUtils.isPresent("org.springframework.web.reactive.function.client.WebClient", this.getClass().getClassLoader());
}
2.4.0:
public ContextCustomizer createContextCustomizer(Class<?> testClass, List<ContextConfigurationAttributes> configAttributes) {
SpringBootTest springBootTest = TestContextAnnotationUtils.findMergedAnnotation(testClass, SpringBootTest.class);
return (springBootTest != null) ? new WebTestClientContextCustomizer() : null;
}
private boolean isWebClientPresent() {
return ClassUtils.isPresent("org.springframework.web.reactive.function.client.WebClient", getClass().getClassLoader());
}
If I'm correct there is no notes about this update at 2.4.0 release notes page. Could you check it and reply how to resolve this case?
Expected behaviour: no exceptions during test run because no WebClient present in classpath.
Actual behaviour: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.test.web.reactive.server.WebTestClient': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: No suitable default ClientHttpConnector found
Comment From: philwebb
Thanks for the report. This is a duplicate of #24152 which has been fixed on master and will be in 2.4.1.