Skip to content

Commit c213837

Browse files
authored
feat: ⬆️ migrate to junit 5 (#27)
1 parent 306f3ae commit c213837

File tree

5 files changed

+47
-10
lines changed

5 files changed

+47
-10
lines changed

app/build.gradle

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ apply plugin: 'com.android.application'
22
apply plugin: 'kotlin-android'
33
apply plugin: 'kotlin-android-extensions'
44
apply plugin: 'kotlin-kapt'
5+
apply plugin: 'de.mannodermaus.android-junit5'
56

67
android {
78
compileSdkVersion compile_sdk
@@ -77,9 +78,11 @@ dependencies {
7778

7879
testImplementation libs.arch_comp_room_test
7980
testImplementation libs.arch_comp_test
80-
testImplementation libs.junit
81+
testImplementation libs.junit_api
8182
testImplementation libs.koin_test
8283
testImplementation libs.mockito_kotlin
84+
85+
testRuntimeOnly libs.junit_engine
8386
}
8487
repositories {
8588
mavenCentral()
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package es.ffgiraldez.comicsearch.di
2+
3+
import androidx.arch.core.executor.ArchTaskExecutor
4+
import androidx.arch.core.executor.TaskExecutor
5+
import org.junit.jupiter.api.extension.AfterEachCallback
6+
import org.junit.jupiter.api.extension.BeforeEachCallback
7+
import org.junit.jupiter.api.extension.ExtensionContext
8+
9+
class InstantTaskExtension
10+
: BeforeEachCallback, AfterEachCallback {
11+
override fun beforeEach(context: ExtensionContext?) {
12+
ArchTaskExecutor.getInstance().setDelegate(object : TaskExecutor() {
13+
override fun executeOnDiskIO(runnable: Runnable) {
14+
runnable.run()
15+
}
16+
17+
override fun postToMainThread(runnable: Runnable) {
18+
runnable.run()
19+
}
20+
21+
override fun isMainThread(): Boolean {
22+
return true
23+
}
24+
})
25+
}
26+
27+
28+
override fun afterEach(context: ExtensionContext?) {
29+
ArchTaskExecutor.getInstance().setDelegate(null)
30+
}
31+
32+
}
33+
34+

app/src/test/java/es/ffgiraldez/comicsearch/di/TestContextResolution.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,17 @@
11
package es.ffgiraldez.comicsearch.di
22

3-
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
43
import es.ffgiraldez.comicsearch.comics.di.comicModule
54
import es.ffgiraldez.comicsearch.navigation.di.navigationModule
65
import es.ffgiraldez.comicsearch.query.search.di.searchModule
76
import es.ffgiraldez.comicsearch.query.sugestion.di.suggestionModule
8-
import org.junit.Rule
9-
import org.junit.Test
10-
import org.junit.rules.TestRule
7+
import org.junit.jupiter.api.Test
8+
import org.junit.jupiter.api.extension.ExtendWith
119
import org.koin.test.KoinTest
1210
import org.koin.test.checkModules
1311

12+
@ExtendWith(InstantTaskExtension::class)
1413
class TestContextResolution : KoinTest {
1514

16-
@get:Rule
17-
var rule: TestRule = InstantTaskExecutorRule()
18-
1915
@Test
2016
fun `dry run`() {
2117
// start Koin

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ buildscript {
1010
dependencies {
1111
classpath build_plugins.android_gradle
1212
classpath build_plugins.kotlin_gradle
13+
classpath build_plugins.android_junit
1314
}
1415
}
1516

dependencies.gradle

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@ ext {
1414
okhttp : '3.11.0',
1515
retrofit : '2.4.0',
1616
support : '1.0.0',
17+
junit : '5.3.2'
1718
]
1819

1920
build_plugins = [
2021
android_gradle: [group: 'com.android.tools.build', name: 'gradle', version: versions.android_plugin],
21-
kotlin_gradle : [group: 'org.jetbrains.kotlin', name: 'kotlin-gradle-plugin', version: versions.kotlin]
22+
kotlin_gradle : [group: 'org.jetbrains.kotlin', name: 'kotlin-gradle-plugin', version: versions.kotlin],
23+
android_junit : [group: 'de.mannodermaus.gradle.plugins', name: 'android-junit5', version: '1.3.2.0']
2224
]
2325

2426
libs = [
@@ -34,7 +36,8 @@ ext {
3436
databinding_compiler : [group: 'com.android.databinding', name: 'compiler', version: versions.android_plugin],
3537
design : [group: 'com.android.support', name: 'design', version: versions.support],
3638
floating_search : [group: 'com.github.arimorty', name: 'floatingsearchview', version: '2.1.1'],
37-
junit : [group: 'junit', name: 'junit', version: '4.12'],
39+
junit_api : [group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: versions.junit],
40+
junit_engine : [group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: versions.junit],
3841
okhttp : [group: 'com.squareup.okhttp3', name: 'okhttp', version: versions.okhttp],
3942
okhttp_logging : [group: 'com.squareup.okhttp3', name: 'logging-interceptor', version: versions.okhttp],
4043
koin : [group: 'org.koin', name: 'koin-core', version: versions.koin],

0 commit comments

Comments
 (0)