Skip to content

Commit d11d5ce

Browse files
committed
Split up JUnit 5 OutputCapture class
Split the JUnit 5 `OutputCapture` class into separate `OutputExtension` and `CapturedOutput` classes. The JUnit 5 callback methods are now contained only in the `OutputExtension` class so no longer pollute the public API that users will interact with. The `CapturedOutput` class has also been updated to capture System.err and System.out separately to allow distinct assertions if required. Closes gh-17029
1 parent 68a3fbd commit d11d5ce

File tree

49 files changed

+761
-313
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+761
-313
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/prometheus/PrometheusMetricsExportAutoConfigurationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
import org.springframework.boot.autoconfigure.AutoConfigurations;
3030
import org.springframework.boot.test.context.assertj.AssertableApplicationContext;
3131
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
32-
import org.springframework.boot.test.extension.OutputCapture;
32+
import org.springframework.boot.test.extension.CapturedOutput;
33+
import org.springframework.boot.test.extension.OutputExtension;
3334
import org.springframework.context.annotation.Bean;
3435
import org.springframework.context.annotation.Configuration;
3536
import org.springframework.context.annotation.Import;
@@ -45,7 +46,7 @@
4546
public class PrometheusMetricsExportAutoConfigurationTests {
4647

4748
@RegisterExtension
48-
public OutputCapture output = new OutputCapture();
49+
CapturedOutput output = OutputExtension.capture();
4950

5051
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
5152
.withConfiguration(AutoConfigurations

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsConfigurationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
3030
import org.springframework.boot.test.context.assertj.AssertableApplicationContext;
3131
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
32-
import org.springframework.boot.test.extension.OutputCapture;
32+
import org.springframework.boot.test.extension.CapturedOutput;
33+
import org.springframework.boot.test.extension.OutputExtension;
3334
import org.springframework.boot.web.client.RestTemplateBuilder;
3435
import org.springframework.http.HttpStatus;
3536
import org.springframework.test.web.client.MockRestServiceServer;
@@ -54,7 +55,7 @@ public class RestTemplateMetricsConfigurationTests {
5455
HttpClientMetricsAutoConfiguration.class));
5556

5657
@RegisterExtension
57-
public OutputCapture output = new OutputCapture();
58+
CapturedOutput output = OutputExtension.capture();
5859

5960
@Test
6061
public void restTemplateCreatedWithBuilderIsInstrumented() {

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/WebClientMetricsConfigurationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration;
3232
import org.springframework.boot.test.context.assertj.AssertableApplicationContext;
3333
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
34-
import org.springframework.boot.test.extension.OutputCapture;
34+
import org.springframework.boot.test.extension.CapturedOutput;
35+
import org.springframework.boot.test.extension.OutputExtension;
3536
import org.springframework.context.annotation.Bean;
3637
import org.springframework.context.annotation.Configuration;
3738
import org.springframework.http.HttpStatus;
@@ -58,7 +59,7 @@ public class WebClientMetricsConfigurationTests {
5859
HttpClientMetricsAutoConfiguration.class));
5960

6061
@RegisterExtension
61-
public OutputCapture output = new OutputCapture();
62+
CapturedOutput output = OutputExtension.capture();
6263

6364
@Test
6465
public void webClientCreatedWithBuilderIsInstrumented() {

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/reactive/WebFluxMetricsAutoConfigurationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
import org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration;
3030
import org.springframework.boot.test.context.assertj.AssertableReactiveWebApplicationContext;
3131
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
32-
import org.springframework.boot.test.extension.OutputCapture;
32+
import org.springframework.boot.test.extension.CapturedOutput;
33+
import org.springframework.boot.test.extension.OutputExtension;
3334
import org.springframework.context.annotation.Bean;
3435
import org.springframework.context.annotation.Configuration;
3536
import org.springframework.test.web.reactive.server.WebTestClient;
@@ -50,7 +51,7 @@ public class WebFluxMetricsAutoConfigurationTests {
5051
AutoConfigurations.of(WebFluxMetricsAutoConfiguration.class));
5152

5253
@RegisterExtension
53-
public OutputCapture output = new OutputCapture();
54+
CapturedOutput output = OutputExtension.capture();
5455

5556
@Test
5657
public void shouldProvideWebFluxMetricsBeans() {

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/servlet/WebMvcMetricsAutoConfigurationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@
4242
import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
4343
import org.springframework.boot.test.context.assertj.AssertableWebApplicationContext;
4444
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
45-
import org.springframework.boot.test.extension.OutputCapture;
45+
import org.springframework.boot.test.extension.CapturedOutput;
46+
import org.springframework.boot.test.extension.OutputExtension;
4647
import org.springframework.boot.web.servlet.FilterRegistrationBean;
4748
import org.springframework.context.annotation.Bean;
4849
import org.springframework.context.annotation.Configuration;
@@ -69,7 +70,7 @@ public class WebMvcMetricsAutoConfigurationTests {
6970
AutoConfigurations.of(WebMvcMetricsAutoConfiguration.class));
7071

7172
@RegisterExtension
72-
public OutputCapture output = new OutputCapture();
73+
CapturedOutput output = OutputExtension.capture();
7374

7475
@Test
7576
public void backsOffWhenMeterRegistryIsMissing() {

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/server/ManagementContextAutoConfigurationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
import org.springframework.boot.autoconfigure.AutoConfigurations;
2828
import org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration;
2929
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
30-
import org.springframework.boot.test.extension.OutputCapture;
30+
import org.springframework.boot.test.extension.CapturedOutput;
31+
import org.springframework.boot.test.extension.OutputExtension;
3132
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
3233

3334
import static org.assertj.core.api.Assertions.assertThat;
@@ -41,7 +42,7 @@
4142
public class ManagementContextAutoConfigurationTests {
4243

4344
@RegisterExtension
44-
public OutputCapture output = new OutputCapture();
45+
CapturedOutput output = OutputExtension.capture();
4546

4647
@Test
4748
public void childManagementContextShouldStartForEmbeddedServer() {

spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/EndpointIdTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
import org.junit.jupiter.api.Test;
2020
import org.junit.jupiter.api.extension.RegisterExtension;
2121

22-
import org.springframework.boot.test.extension.OutputCapture;
22+
import org.springframework.boot.test.extension.CapturedOutput;
23+
import org.springframework.boot.test.extension.OutputExtension;
2324

2425
import static org.assertj.core.api.Assertions.assertThat;
2526
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
@@ -32,7 +33,7 @@
3233
public class EndpointIdTests {
3334

3435
@RegisterExtension
35-
public OutputCapture output = new OutputCapture();
36+
CapturedOutput output = OutputExtension.capture();
3637

3738
@Test
3839
public void ofWhenNullThrowsException() {

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/freemarker/FreeMarkerAutoConfigurationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424

2525
import org.springframework.boot.autoconfigure.AutoConfigurations;
2626
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
27-
import org.springframework.boot.test.extension.OutputCapture;
27+
import org.springframework.boot.test.extension.CapturedOutput;
28+
import org.springframework.boot.test.extension.OutputExtension;
2829
import org.springframework.boot.testsupport.BuildOutput;
2930

3031
import static org.assertj.core.api.Assertions.assertThat;
@@ -38,7 +39,7 @@
3839
public class FreeMarkerAutoConfigurationTests {
3940

4041
@RegisterExtension
41-
public OutputCapture output = new OutputCapture();
42+
CapturedOutput output = OutputExtension.capture();
4243

4344
private final BuildOutput buildOutput = new BuildOutput(getClass());
4445

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/influx/InfluxDbAutoConfigurationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
import org.springframework.boot.autoconfigure.AutoConfigurations;
2828
import org.springframework.boot.test.context.assertj.AssertableApplicationContext;
2929
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
30-
import org.springframework.boot.test.extension.OutputCapture;
30+
import org.springframework.boot.test.extension.CapturedOutput;
31+
import org.springframework.boot.test.extension.OutputExtension;
3132
import org.springframework.context.annotation.Bean;
3233
import org.springframework.context.annotation.Configuration;
3334
import org.springframework.test.util.ReflectionTestUtils;
@@ -44,7 +45,7 @@
4445
public class InfluxDbAutoConfigurationTests {
4546

4647
@RegisterExtension
47-
public OutputCapture output = new OutputCapture();
48+
CapturedOutput output = OutputExtension.capture();
4849

4950
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
5051
.withConfiguration(AutoConfigurations.of(InfluxDbAutoConfiguration.class));

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationServletContainerTests.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@
3636
import org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration;
3737
import org.springframework.boot.test.context.SpringBootTest;
3838
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
39-
import org.springframework.boot.test.extension.OutputCapture;
39+
import org.springframework.boot.test.extension.CapturedOutput;
40+
import org.springframework.boot.test.extension.OutputExtension;
4041
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
4142
import org.springframework.context.annotation.Bean;
4243
import org.springframework.context.annotation.Configuration;
@@ -53,11 +54,11 @@
5354
*/
5455
@SpringBootTest(classes = Application.class, webEnvironment = WebEnvironment.RANDOM_PORT)
5556
@DirtiesContext
56-
@ExtendWith(OutputCapture.class)
57+
@ExtendWith(OutputExtension.class)
5758
public class JerseyAutoConfigurationServletContainerTests {
5859

5960
@Test
60-
public void existingJerseyServletIsAmended(OutputCapture output) {
61+
public void existingJerseyServletIsAmended(CapturedOutput output) {
6162
assertThat(output)
6263
.contains("Configuring existing registration for Jersey servlet");
6364
assertThat(output).contains(

0 commit comments

Comments
 (0)