クラス 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
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.out
SE および System.err
SE をキャプチャーする 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)
メソッドの詳細
beforeAll
- 次で指定:
- インターフェース
org.junit.jupiter.api.extension.BeforeAllCallback
のbeforeAll
- 例外:
ExceptionSE
afterAll
- 次で指定:
- インターフェース
org.junit.jupiter.api.extension.AfterAllCallback
のafterAll
- 例外:
ExceptionSE
beforeEach
- 次で指定:
- インターフェース
org.junit.jupiter.api.extension.BeforeEachCallback
のbeforeEach
- 例外:
ExceptionSE
afterEach
- 次で指定:
- インターフェース
org.junit.jupiter.api.extension.AfterEachCallback
のafterEach
- 例外:
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.ParameterResolver
のsupportsParameter
- 例外:
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.ParameterResolver
のresolveParameter