JUnit 5 Fundamentals
Lifecycle Caveats for Dynamic Tests
Autoplay
Up next
Previous
About
Overview
When working with dynamic tests in JUnit Jupiter, it's essential to understand an important caveat, before running into unforeseen issues with this powerful concept. In this lesson, we uncover that DynamicTest
cases do not partake in the lifecycle of JUnit's default model, such as @BeforeAll
, @BeforeEach
, @AfterEach
and @AfterAll
.
In particular, the @TestFactory
method that generates dynamic tests is part of this lifecycle, and it can be assumed that these callbacks will be called around the factory. However, if the factory exposes multiple DynamicTest
s, the lifecycle callbacks will not be called in-between each DynamicTest
!
Summary
- A
@TestFactory
is integrated in theBefore/After
lifecycle of JUnit Jupiter - Individual
DynamicTest
s created by a@TestFactory
are not
Instructor
Links
Comments
Lessons in JUnit 5 Fundamentals
1. Understand the Core Components of JUnit 5
02:11
2. Set up your Java Project for JUnit 5

01:25
3. Set up your Android Project for JUnit 5

01:42
4. The first @Test

02:06
5. Lifecycle with @BeforeEach & @AfterEach

01:09
6. Lifecycle with @BeforeAll & @AfterAll

Pro
01:10
7. Using 1 Instance per Method with @TestInstance

Pro
01:12
8. Using 1 Instance per Class with @TestInstance

Pro
02:01
9. Taking advantage of @TestInstance(PER_CLASS) in Kotlin

Pro
01:25
10. Bearable Test Method Names with @DisplayName

Pro
02:19
11. Checking for equality with assertEquals() & Friends

Pro
02:53
12. Using assertTrue() & assertFalse()

Pro
00:51
13. Asserting null

Pro
00:38
14. Testing Exceptions with assertThrows()

Pro
01:10
15. Composing Assertions with assertAll()

Pro
02:00
16. Avoiding failure with Assumptions

Pro
01:33
17. Ignoring Tests with @Disabled

Pro
01:31
18. Conditional Test Execution Pairs: @EnabledOnOs & @DisabledOnOs

Pro
01:43
19. Conditional Test Execution Pairs: @EnabledOnJre & @DisabledOnJre

Pro
00:47
20. Conditional Test Execution Pairs: @EnabledIfSystemProperty & @DisabledIfSystemProperty

Pro
01:30
21. Conditional Test Execution Pairs: @EnabledIfEnvironmentVariable & @DisabledIfEnvironmentVariable

Pro
01:08
22. Conditional Test Execution Pairs: @EnabledIf & @DisabledIf

Pro
02:19
23. Grouping tests with @Tag

Pro
01:50
24. @Nested & Effective BDD in JUnit 5

Pro
03:38
25. Running a test multiple times with @RepeatedTest

Pro
05:19
26. @ParameterizedTest with @ValueSource

Pro
03:11
27. @ParameterizedTest with @EnumSource

Pro
00:31
28. @ParameterizedTest with @MethodSource

Pro
02:30
29. @ParameterizedTest with @CsvSource & @CsvFileSource

Pro
01:44
30. Argument Conversion Techniques for Parameterized Tests

Pro
04:09
31. Writing a custom @Source for Parameterized Tests

Pro
04:31
32. Introduction to @TestFactory and Dynamic Tests

Pro
01:31
33. Grouping Dynamic Tests into Containers

Pro
01:55
34. Lifecycle Caveats for Dynamic Tests

Pro
01:06
35. Setting up Parallel Test Execution

Pro
02:47
36. Parallel Execution Strategies: Dynamic

Pro
02:02
37. Parallel Execution Strategies: Fixed

Pro
00:48
38. Parallel Execution Strategies: Custom

Pro
03:16
39. Synchronizing Parallel Test Execution with @ResourceLock

Pro
03:28

Something went wrong
Lesson added to playlist
Create new playlist
Name can't be empty