クラス OutputCaptureExtension

java.lang.ObjectSE
org.springframework.boot.test.system.OutputCaptureExtension
実装されたすべてのインターフェース:
org.junit.jupiter.api.extension.AfterAllCallbackorg.junit.jupiter.api.extension.AfterEachCallbackorg.junit.jupiter.api.extension.BeforeAllCallbackorg.junit.jupiter.api.extension.BeforeEachCallbackorg.junit.jupiter.api.extension.Extensionorg.junit.jupiter.api.extension.ParameterResolver

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
関連事項:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    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)

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

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • メソッドの詳細

    • 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