クラス OutputCaptureExtension

java.lang.ObjectSE
org.springframework.boot.test.system.OutputCaptureExtension
実装済みのインターフェース一覧:
AfterAllCallback, AfterEachCallback, BeforeAllCallback, BeforeEachCallback, Extension, ParameterResolver, TestInstantiationAwareExtension

public class OutputCaptureExtension extends ObjectSE implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver
JUnit Jupiter @Extension は、System.outSE および System.errSE をキャプチャーします。テストクラス全体、または @ExtendWith を介して個々のテストメソッドに登録できます。この拡張機能は、正しい出力が書き込まれたことをアサートするために使用できる CapturedOutput インスタンスのパラメーター解決機能を提供します。

@ExtendWith と併用するには、CapturedOutput をテストクラスのコンストラクター、テストメソッド、ライフサイクルメソッドの引数として注入します。

@ExtendWith(OutputCaptureExtension.class)
class MyTest {

    @Test
    void test(CapturedOutput output) {
        System.out.println("ok");
        assertThat(output).contains("ok");
        System.err.println("error");
    }

    @AfterEach
    void after(CapturedOutput output) {
        assertThat(output.getOut()).contains("ok");
        assertThat(output.getErr()).contains("error");
    }

}

出力を確実にキャプチャーできるようにするには、Java Util Logging (JUL) と Log4j2 に追加の構成が必要です。

Java Util Logging からの出力を確実にキャプチャーするには、各テストの後に構成をリセットします。

@AfterEach
void reset() throws Exception {
    LogManager.getLogManager().readConfiguration();
}

Log4j2 からの出力を確実にキャプチャーするには、コンソールアペンダーの follow 属性を true に設定します。

<Appenders>
    <Console name="Console" target="SYSTEM_OUT" follow="true">
        ...
    </Console>
 </Appenders>
導入:
2.2.0
作成者:
Madhura Bhave, Phillip Webb, Andy Wilkinson, Sam Brannen
関連事項: