Guilherme Delgado
08/14/2024, 10:07 AMmoduleA and moduleB. Each module commonMain has a DI class with an expect function to provide their Koin setup. I’m currently writing tests for each module, so each commonTest also has its own DI class for setup. For example, moduleA uses SQLDelight, which requires a “testing driver” for tests.
The issue arises because moduleB depends on moduleA and includes a repository that interacts with `moduleA`’s database. Unfortunately, I can’t import (resolve) the DI class from `moduleA`’s commonTest in moduleB, even though I can access `moduleA`’s commonMain DI class. However, I can’t use the commonMain version because it doesn’t include the “testing driver.”
I’ve tried adding moduleA as a dependency in `moduleB`’s build.gradle under the commonTest source set, but it still won’t resolve.
moduleB’s commonTest test class:
@BeforeTest
fun setUp() {
startKoin {
modules(
moduleADiModule() <<<< can resolve (from module A commonMain)
moduleATestDiModule() <<<< cannot resolve (from module A commonTest)
)
}
}
What am I missing? 🤔Javi
08/14/2024, 11:03 AMJavi
08/14/2024, 11:04 AMGuilherme Delgado
08/14/2024, 11:22 AMmoduleADiModule() belongs to DI.kt from moduleA commonMain.
The function moduleATestDiModule() belongs to DITest.kt from moduleA commonTest.
moduleB build.gradle:
commonMain.dependencies {
implementation(projects.moduleA)
...
}
commonTest.dependencies {
implementation(libs.test.kotlin)
implementation(libs.test.kmp.koin)
implementation(libs.test.kmp.turbine)
implementation(libs.test.kotlinx.coroutines)
}Javi
08/14/2024, 11:23 AMGuilherme Delgado
08/14/2024, 11:24 AMJavi
08/14/2024, 11:25 AMJavi
08/14/2024, 11:25 AMGuilherme Delgado
08/14/2024, 11:25 AMGuilherme Delgado
08/14/2024, 12:00 PM