クラス OutputCaptureExtension

java.lang.ObjectSE
org.springframework.boot.test.system.OutputCaptureExtension
実装されているすべてのインターフェース:
org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.Extension, org.junit.jupiter.api.extension.ParameterResolver, org.junit.jupiter.api.extension.TestInstantiationAwareExtension

public class OutputCaptureExtension extends ObjectSE implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.ParameterResolver
System.outSE および System.errSE をキャプチャーする JUnit Jupiter @Extension@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
関連事項:
  • ネストされたクラスの要約

    インターフェース org.junit.jupiter.api.extension.TestInstantiationAwareExtension から継承されたネストクラス / インターフェース

    org.junit.jupiter.api.extension.TestInstantiationAwareExtension.ExtensionContextScope
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    afterAll(org.junit.jupiter.api.extension.ExtensionContext context)
    void
    afterEach(org.junit.jupiter.api.extension.ExtensionContext context)
    void
    beforeAll(org.junit.jupiter.api.extension.ExtensionContext context)
    void
    beforeEach(org.junit.jupiter.api.extension.ExtensionContext context)
    resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
    boolean
    supportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)

    クラス ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE

    インターフェース org.junit.jupiter.api.extension.TestInstantiationAwareExtension から継承されたメソッド

    getTestInstantiationExtensionContextScope
  • メソッドの詳細

    • beforeAll

      public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext context) throws ExceptionSE
      次で指定:
      インターフェース org.junit.jupiter.api.extension.BeforeAllCallbackbeforeAll 
      例外:
      ExceptionSE
    • afterAll

      public void afterAll(org.junit.jupiter.api.extension.ExtensionContext context) throws ExceptionSE
      次で指定:
      インターフェース org.junit.jupiter.api.extension.AfterAllCallbackafterAll 
      例外:
      ExceptionSE
    • beforeEach

      public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context) throws ExceptionSE
      次で指定:
      インターフェース org.junit.jupiter.api.extension.BeforeEachCallbackbeforeEach 
      例外:
      ExceptionSE
    • afterEach

      public void afterEach(org.junit.jupiter.api.extension.ExtensionContext context) throws ExceptionSE
      次で指定:
      インターフェース org.junit.jupiter.api.extension.AfterEachCallbackafterEach 
      例外:
      ExceptionSE
    • supportsParameter

      public boolean supportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws org.junit.jupiter.api.extension.ParameterResolutionException
      次で指定:
      インターフェース org.junit.jupiter.api.extension.ParameterResolversupportsParameter 
      例外:
      org.junit.jupiter.api.extension.ParameterResolutionException
    • resolveParameter

      public ObjectSE resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
      次で指定:
      インターフェース org.junit.jupiter.api.extension.ParameterResolverresolveParameter