Browse Source

Polish

Closes gh-16948
pull/16972/head
Johnny Lim 7 years ago committed by Stephane Nicoll
parent
commit
d8e5169f5f
  1. 25
      spring-boot-project/spring-boot-test/src/main/java/org/springframework/boot/test/extension/OutputCapture.java
  2. 10
      spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/extension/OutputCaptureExtendWithTests.java
  3. 5
      spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/extension/OutputCaptureRegisterExtensionTests.java

25
spring-boot-project/spring-boot-test/src/main/java/org/springframework/boot/test/extension/OutputCapture.java

@ -19,11 +19,7 @@ import java.io.ByteArrayOutputStream; @@ -19,11 +19,7 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
import org.hamcrest.Matcher;
import org.junit.Assert;
import org.junit.jupiter.api.extension.AfterEachCallback;
import org.junit.jupiter.api.extension.BeforeAllCallback;
import org.junit.jupiter.api.extension.BeforeEachCallback;
@ -34,12 +30,11 @@ import org.junit.jupiter.api.extension.ParameterResolver; @@ -34,12 +30,11 @@ import org.junit.jupiter.api.extension.ParameterResolver;
import org.springframework.boot.ansi.AnsiOutput;
import static org.hamcrest.Matchers.allOf;
/**
* JUnit5 {@code @Extension} to capture output from System.out and System.err.
*
* @author Madhura Bhave
* @since 2.2.0
*/
public class OutputCapture implements BeforeEachCallback, AfterEachCallback,
BeforeAllCallback, ParameterResolver, CharSequence {
@ -52,20 +47,9 @@ public class OutputCapture implements BeforeEachCallback, AfterEachCallback, @@ -52,20 +47,9 @@ public class OutputCapture implements BeforeEachCallback, AfterEachCallback,
private ByteArrayOutputStream classLevelCopy;
private List<Matcher<? super String>> matchers = new ArrayList<>();
@Override
public void afterEach(ExtensionContext context) {
try {
if (!this.matchers.isEmpty()) {
String output = this.toString();
Assert.assertThat(output, allOf(this.matchers));
}
}
finally {
releaseOutput();
}
releaseOutput();
}
@Override
@ -168,11 +152,6 @@ public class OutputCapture implements BeforeEachCallback, AfterEachCallback, @@ -168,11 +152,6 @@ public class OutputCapture implements BeforeEachCallback, AfterEachCallback,
this.original.flush();
}
@Override
public void write(byte[] b) throws IOException {
write(b, 0, b.length);
}
@Override
public void write(byte[] b, int off, int len) throws IOException {
this.copy.write(b, off, len);

10
spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/extension/OutputCaptureExtendWithTests.java

@ -29,21 +29,19 @@ import static org.assertj.core.api.Assertions.assertThat; @@ -29,21 +29,19 @@ import static org.assertj.core.api.Assertions.assertThat;
*/
@ExtendWith(OutputCapture.class)
@ExtendWith(OutputCaptureExtendWithTests.BeforeAllExtension.class)
public class OutputCaptureExtendWithTests {
class OutputCaptureExtendWithTests {
@Test
void captureShouldReturnOutputCapturedBeforeTestMethod(OutputCapture output) {
assertThat(output).contains("Before all");
assertThat(output).doesNotContain("Hello");
assertThat(output).contains("Before all").doesNotContain("Hello");
}
@Test
void captureShouldReturnAllCapturedOutput(OutputCapture output) {
System.out.println("Hello World");
System.err.println("Error!!!");
assertThat(output).contains("Before all");
assertThat(output).contains("Hello World");
assertThat(output).contains("Error!!!");
assertThat(output).contains("Before all").contains("Hello World")
.contains("Error!!!");
}
static class BeforeAllExtension implements BeforeAllCallback {

5
spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/extension/OutputCaptureRegisterExtensionTests.java

@ -25,7 +25,7 @@ import static org.assertj.core.api.Assertions.assertThat; @@ -25,7 +25,7 @@ import static org.assertj.core.api.Assertions.assertThat;
*
* @author Madhura Bhave
*/
public class OutputCaptureRegisterExtensionTests {
class OutputCaptureRegisterExtensionTests {
@RegisterExtension
OutputCapture output = new OutputCapture();
@ -34,8 +34,7 @@ public class OutputCaptureRegisterExtensionTests { @@ -34,8 +34,7 @@ public class OutputCaptureRegisterExtensionTests {
void captureShouldReturnAllCapturedOutput() {
System.out.println("Hello World");
System.err.println("Error!!!");
assertThat(this.output).contains("Hello World");
assertThat(this.output).contains("Error!!!");
assertThat(this.output).contains("Hello World").contains("Error!!!");
}
}

Loading…
Cancel
Save