クラス 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メソッドのサマリー
修飾子と型メソッド説明voidafterAll(org.junit.jupiter.api.extension.ExtensionContext context) voidafterEach(org.junit.jupiter.api.extension.ExtensionContext context) voidbeforeAll(org.junit.jupiter.api.extension.ExtensionContext context) voidbeforeEach(org.junit.jupiter.api.extension.ExtensionContext context) resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) booleansupportsParameter(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
- 次で指定:
- インターフェース
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