diff --git a/documentation/src/docs/asciidoc/user-guide/extensions.adoc b/documentation/src/docs/asciidoc/user-guide/extensions.adoc index 3902dad32174..08047abb69c7 100644 --- a/documentation/src/docs/asciidoc/user-guide/extensions.adoc +++ b/documentation/src/docs/asciidoc/user-guide/extensions.adoc @@ -633,6 +633,11 @@ please consult the respective Javadoc for each annotation and extension. JUnit Jupiter guarantees wrapping behavior within class hierarchies for user-supplied lifecycle callbacks (e.g., `@BeforeEach` and `@AfterEach`): +//// +PNG generated using ZenUML: https://app.zenuml.com + +See corresponding *.txt file in images folder for the source. +//// image::extensions_DatabaseTestsDemo.png[caption='',title='DatabaseTestsDemo.java'] JUnit Jupiter does **not** guarantee the order in which multiple lifecycle methods are @@ -647,6 +652,11 @@ test methods in the same order, thereby allowing for repeatable builds. In addition, and more importantly, JUnit Jupiter does **not** support wrapping behavior for multiple lifecycle methods declared within a single test class or test interface. +//// +PNG generated using ZenUML: https://app.zenuml.com + +See corresponding *.txt file in images folder for the source. +//// image::extensions_BrokenLifecycleMethodConfigDemo.png[caption='',title='BrokenLifecycleMethodConfigDemo.java'] Due to the aforementioned behavior, the JUnit Team recommends that developers declare at diff --git a/documentation/src/docs/asciidoc/user-guide/images/extensions_BrokenLifecycleMethodConfigDemo.png b/documentation/src/docs/asciidoc/user-guide/images/extensions_BrokenLifecycleMethodConfigDemo.png index 803c2795c77b..3f661c200d60 100644 Binary files a/documentation/src/docs/asciidoc/user-guide/images/extensions_BrokenLifecycleMethodConfigDemo.png and b/documentation/src/docs/asciidoc/user-guide/images/extensions_BrokenLifecycleMethodConfigDemo.png differ diff --git a/documentation/src/docs/asciidoc/user-guide/images/extensions_BrokenLifecycleMethodConfigDemo.txt b/documentation/src/docs/asciidoc/user-guide/images/extensions_BrokenLifecycleMethodConfigDemo.txt index 0a0b1d09eaa0..8c948439eb2b 100644 --- a/documentation/src/docs/asciidoc/user-guide/images/extensions_BrokenLifecycleMethodConfigDemo.txt +++ b/documentation/src/docs/asciidoc/user-guide/images/extensions_BrokenLifecycleMethodConfigDemo.txt @@ -1,5 +1,6 @@ @Starter(Platform) -Result = JupiterEngine.execute("BrokenLifecycleMethodConfigDemo.testDatabaseFunctionality") { +Result = JupiterEngine.execute(BrokenLifecycleMethodConfigDemo) { + Extension1.beforeEach() Extension2.beforeEach() // @BeforeEach @@ -11,7 +12,8 @@ Result = JupiterEngine.execute("BrokenLifecycleMethodConfigDemo.testDatabaseFunc // @AfterEach BrokenLifecycleMethodConfigDemo.disconnectFromDatabase() // @AfterEach - BrokenLifecycleMethodConfigDemo.deleteTestDataInDatabase() + BrokenLifecycleMethodConfigDemo.deleteTestDataFromDatabase() Extension2.afterEach() Extension1.afterEach() + } diff --git a/documentation/src/docs/asciidoc/user-guide/images/extensions_DatabaseTestsDemo.png b/documentation/src/docs/asciidoc/user-guide/images/extensions_DatabaseTestsDemo.png index ebebb9b76851..440c80973c67 100644 Binary files a/documentation/src/docs/asciidoc/user-guide/images/extensions_DatabaseTestsDemo.png and b/documentation/src/docs/asciidoc/user-guide/images/extensions_DatabaseTestsDemo.png differ diff --git a/documentation/src/docs/asciidoc/user-guide/images/extensions_DatabaseTestsDemo.txt b/documentation/src/docs/asciidoc/user-guide/images/extensions_DatabaseTestsDemo.txt index c0ae56043e47..e6d9817f0ee4 100644 --- a/documentation/src/docs/asciidoc/user-guide/images/extensions_DatabaseTestsDemo.txt +++ b/documentation/src/docs/asciidoc/user-guide/images/extensions_DatabaseTestsDemo.txt @@ -1,5 +1,10 @@ @Starter(Platform) -Result = JupiterEngine.execute("DatabaseTestsDemo.testDatabaseFunctionality") { +Result = JupiterEngine.execute(DatabaseTestsDemo) { + + // @BeforeAll inherited from AbstractDatabaseTests + DatabaseTestsDemo.createDatabase() + // @BeforeAll + DatabaseTestsDemo.beforeAll() Extension1.beforeEach() Extension2.beforeEach() // @BeforeEach inherited from AbstractDatabaseTests @@ -9,9 +14,14 @@ Result = JupiterEngine.execute("DatabaseTestsDemo.testDatabaseFunctionality") { // @Test DatabaseTestsDemo.testDatabaseFunctionality() // @AfterEach - DatabaseTestsDemo.deleteTestDataInDatabase() + DatabaseTestsDemo.deleteTestDataFromDatabase() // @AfterEach inherited from AbstractDatabaseTests DatabaseTestsDemo.disconnectFromDatabase() Extension2.afterEach() Extension1.afterEach() + // @BeforeAll + DatabaseTestsDemo.afterAll() + // @AfterAll inherited from AbstractDatabaseTests + DatabaseTestsDemo.destroyDatabase() + } diff --git a/documentation/src/test/java/example/callbacks/BrokenLifecycleMethodConfigDemo.java b/documentation/src/test/java/example/callbacks/BrokenLifecycleMethodConfigDemo.java index c5e3069add52..3073d3ac7219 100644 --- a/documentation/src/test/java/example/callbacks/BrokenLifecycleMethodConfigDemo.java +++ b/documentation/src/test/java/example/callbacks/BrokenLifecycleMethodConfigDemo.java @@ -45,8 +45,8 @@ void testDatabaseFunctionality() { } @AfterEach - void deleteTestDataInDatabase() { - afterEachMethod(getClass().getSimpleName() + ".deleteTestDataInDatabase()"); + void deleteTestDataFromDatabase() { + afterEachMethod(getClass().getSimpleName() + ".deleteTestDataFromDatabase()"); } @AfterEach diff --git a/documentation/src/test/java/example/callbacks/DatabaseTestsDemo.java b/documentation/src/test/java/example/callbacks/DatabaseTestsDemo.java index dd26a8983ec6..7c003077a2ea 100644 --- a/documentation/src/test/java/example/callbacks/DatabaseTestsDemo.java +++ b/documentation/src/test/java/example/callbacks/DatabaseTestsDemo.java @@ -46,13 +46,13 @@ void testDatabaseFunctionality() { } @AfterEach - void deleteTestDataInDatabase() { - afterEachMethod(getClass().getSimpleName() + ".deleteTestDataInDatabase()"); + void deleteTestDataFromDatabase() { + afterEachMethod(getClass().getSimpleName() + ".deleteTestDataFromDatabase()"); } @AfterAll static void afterAll() { - beforeAllMethod(DatabaseTestsDemo.class.getSimpleName() + ".beforeAll()"); + beforeAllMethod(DatabaseTestsDemo.class.getSimpleName() + ".afterAll()"); } }