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
This commit is contained in:
Phillip Webb
2019-05-30 21:51:07 -07:00
parent 68a3fbd7a0
commit d11d5ceb29
49 changed files with 761 additions and 313 deletions

View File

@@ -19,7 +19,8 @@ package sample.data.solr;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.springframework.boot.test.extension.OutputCapture;
import org.springframework.boot.test.extension.CapturedOutput;
import org.springframework.boot.test.extension.OutputExtension;
import org.springframework.core.NestedCheckedException;
import static org.assertj.core.api.Assertions.assertThat;
@@ -27,7 +28,7 @@ import static org.assertj.core.api.Assertions.assertThat;
class SampleSolrApplicationTests {
@RegisterExtension
OutputCapture output = new OutputCapture();
CapturedOutput output = OutputExtension.capture();
@Test
void testDefaultSettings() throws Exception {