JUnit 5 Fundamentals
@ParameterizedTest with @ValueSource
Autoplay
Up next
Previous
About
Overview
This lesson introduces the @ParameterizedTest
, a viable option for declaring tests that require several different inputs. When a test method is annotated with this annotation (instead of the usual @Test
), it may accept arbitrary input data through its method parameters.
Where does this input data come from? It's stored in a particular kind of companion annotation, which sits alongside the @ParameterizedTest
. These companions are called "sources" in JUnit Jupiter, and the most straightforward source is explored here: @ValueSource
. You define an array of values inside the annotation, and during execution, the TestEngine will call the test method once for each item in this array. This works very well for primitive values and strings.
Summary
- A
@ParameterizedTest
method is executed multiple times; its parameters define the kind of data that it needs @ParameterizedTest
needs a "source annotation" which provides the values
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