Skip to content

Commit dcecee3

Browse files
committed
Migrate to JUnit 6
- Update version catalog: junit5-* → junit6-*, version 5.13.4 → 6.0.3 - Updated all `app/build.gradle.kts` alias references - Removed broken top-level platform call from `core/build.gradle.kts`; moved BOM as implementation inside commonTest dependencies - Fix nullability in `InstantExecutorExtension` - `PostsDataSourcePinboardApiTest`: Extended AddTests.@beforeeach to also clear mockDao and mockConnectivityInfoProvider (JUnit 6 changed nested test execution order, causing mock state from NoConnectionTests to bleed into ItemAlreadyExists tests)
1 parent 23b90ce commit dcecee3

File tree

5 files changed

+22
-24
lines changed

5 files changed

+22
-24
lines changed

app/build.gradle.kts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -236,13 +236,13 @@ dependencies {
236236
testFixturesImplementation(platform(libs.compose.bom))
237237
testFixturesImplementation(libs.compose.runtime)
238238

239-
testImplementation(platform(libs.junit5.bom))
239+
testImplementation(platform(libs.junit6.bom))
240240
testCompileOnly(libs.junit)
241-
testRuntimeOnly(libs.junit5.engine)
242-
testRuntimeOnly(libs.junit5.launcher)
243-
testRuntimeOnly(libs.junit5.vintage)
244-
testImplementation(libs.junit5.api)
245-
testImplementation(libs.junit5.params)
241+
testRuntimeOnly(libs.junit6.engine)
242+
testRuntimeOnly(libs.junit6.launcher)
243+
testRuntimeOnly(libs.junit6.vintage)
244+
testImplementation(libs.junit6.api)
245+
testImplementation(libs.junit6.params)
246246

247247
testImplementation(libs.truth)
248248
testImplementation(libs.mockk)

app/src/test/kotlin/com/fibelatti/pinboard/InstantExecutorExtension.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import org.junit.jupiter.api.extension.ExtensionContext
88

99
class InstantExecutorExtension : BeforeEachCallback, AfterEachCallback {
1010

11-
override fun beforeEach(context: ExtensionContext?) {
11+
override fun beforeEach(context: ExtensionContext) {
1212
ArchTaskExecutor.getInstance().setDelegate(
1313
object : TaskExecutor() {
1414

@@ -21,7 +21,7 @@ class InstantExecutorExtension : BeforeEachCallback, AfterEachCallback {
2121
)
2222
}
2323

24-
override fun afterEach(context: ExtensionContext?) {
24+
override fun afterEach(context: ExtensionContext) {
2525
ArchTaskExecutor.getInstance().setDelegate(null)
2626
}
2727
}

app/src/test/kotlin/com/fibelatti/pinboard/features/posts/data/PostsDataSourcePinboardApiTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,8 @@ class PostsDataSourcePinboardApiTest {
139139

140140
@BeforeEach
141141
fun setup() {
142-
clearMocks(mockApi, mockUserRepository)
142+
clearMocks(mockApi, mockUserRepository, mockDao, mockConnectivityInfoProvider)
143+
every { mockConnectivityInfoProvider.isConnected() } returns true
143144
}
144145

145146
@Test

core/build.gradle.kts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@ plugins {
33
alias(libs.plugins.fibelatti.kotlin.library)
44
}
55

6-
dependencies {
7-
platform(libs.junit5.bom)
8-
}
9-
106
kotlin {
117
jvm()
128

@@ -21,12 +17,13 @@ kotlin {
2117

2218
commonTest {
2319
dependencies {
20+
implementation(project.dependencies.platform(libs.junit6.bom))
2421
compileOnly(libs.junit)
25-
runtimeOnly(libs.junit5.engine)
26-
runtimeOnly(libs.junit5.launcher)
27-
runtimeOnly(libs.junit5.vintage)
28-
implementation(libs.junit5.api)
29-
implementation(libs.junit5.params)
22+
runtimeOnly(libs.junit6.engine)
23+
runtimeOnly(libs.junit6.launcher)
24+
runtimeOnly(libs.junit6.vintage)
25+
implementation(libs.junit6.api)
26+
implementation(libs.junit6.params)
3027

3128
implementation(libs.truth)
3229
implementation(libs.mockk)

gradle/libs.versions.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,12 @@ leakcanary = { module = "com.squareup.leakcanary:leakcanary-android", version =
7373

7474
junit = { module = "junit:junit", version = "4.13.2" }
7575

76-
junit5-bom = { module = "org.junit:junit-bom", version = "5.13.4" }
77-
junit5-api = { module = "org.junit.jupiter:junit-jupiter-api" }
78-
junit5-engine = { module = "org.junit.jupiter:junit-jupiter-engine" }
79-
junit5-params = { module = "org.junit.jupiter:junit-jupiter-params" }
80-
junit5-vintage = { module = "org.junit.vintage:junit-vintage-engine" }
81-
junit5-launcher = { module = "org.junit.platform:junit-platform-launcher" }
76+
junit6-bom = { module = "org.junit:junit-bom", version = "6.0.3" }
77+
junit6-api = { module = "org.junit.jupiter:junit-jupiter-api" }
78+
junit6-engine = { module = "org.junit.jupiter:junit-jupiter-engine" }
79+
junit6-params = { module = "org.junit.jupiter:junit-jupiter-params" }
80+
junit6-vintage = { module = "org.junit.vintage:junit-vintage-engine" }
81+
junit6-launcher = { module = "org.junit.platform:junit-platform-launcher" }
8282

8383
runner = { module = "androidx.test:runner", version = "1.7.0" }
8484
orchestrator = { module = "androidx.test:orchestrator", version = "1.6.1" }

0 commit comments

Comments
 (0)