Skip to content

Commit dcbc263

Browse files
🧪 [add unit tests for SubmissionUploadExecutor]
- Implement Hilt integration test for SubmissionUploadExecutor. - Resolve duplicate bindings by uninstalling DispatcherModule. - Use @bindvalue for DispatcherProvider to simplify Hilt test wiring. - Verify Hilt wiring and IO dispatcher usage deterministically. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
1 parent 556bb7d commit dcbc263

1 file changed

Lines changed: 7 additions & 18 deletions

File tree

app/src/test/java/org/ole/planet/myplanet/services/SubmissionUploadExecutorTest.kt

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
package org.ole.planet.myplanet.services
22

3-
import dagger.Module
4-
import dagger.Provides
5-
import dagger.hilt.InstallIn
3+
import dagger.hilt.android.testing.BindValue
64
import dagger.hilt.android.testing.HiltAndroidRule
75
import dagger.hilt.android.testing.HiltAndroidTest
86
import dagger.hilt.android.testing.HiltTestApplication
97
import dagger.hilt.android.testing.UninstallModules
10-
import dagger.hilt.components.SingletonComponent
118
import io.mockk.every
129
import io.mockk.mockk
1310
import io.mockk.unmockkAll
1411
import javax.inject.Inject
15-
import javax.inject.Singleton
1612
import kotlinx.coroutines.CoroutineDispatcher
1713
import kotlinx.coroutines.ExperimentalCoroutinesApi
1814
import kotlinx.coroutines.test.StandardTestDispatcher
@@ -41,20 +37,13 @@ class SubmissionUploadExecutorTest {
4137
@get:Rule
4238
val hiltRule = HiltAndroidRule(this)
4339

44-
companion object {
45-
private val testScheduler = TestCoroutineScheduler()
46-
private val ioDispatcher = StandardTestDispatcher(testScheduler)
47-
private val mockDispatcherProvider = mockk<DispatcherProvider> {
48-
every { io } returns ioDispatcher
49-
}
40+
private val testScheduler = TestCoroutineScheduler()
41+
private val ioDispatcher = StandardTestDispatcher(testScheduler)
5042

51-
@Module
52-
@InstallIn(SingletonComponent::class)
53-
object TestModule {
54-
@Provides
55-
@Singleton
56-
fun provideDispatcherProvider(): DispatcherProvider = mockDispatcherProvider
57-
}
43+
@BindValue
44+
@JvmField
45+
val dispatcherProvider: DispatcherProvider = mockk(relaxed = true) {
46+
every { io } returns ioDispatcher
5847
}
5948

6049
@Inject

0 commit comments

Comments
 (0)