kotlin
class Dependency {
fun getData(): String {
return "Real Data"
}
}
@Singleton
class MyClass {
@Inject
lateinit var dependency: Dependency
fun process(): String {
val data = dependency.getData()
return "Processed $data"
}
}
class MyClassTest {
@ReplaceWith(MockDependency::class)
class TestModule : InjektModule
class MockDependency {
fun getData(): String {
return "Mock Data"
}
}
@Test
fun testProcess() {
InjektModule.registerModule(TestModule())
val myClass = MyClass()
val result = myClass.process()
assertEquals("Processed Mock Data", result)
InjektModule.unregisterModule(TestModule())
}
}
groovy
dependencies {
implementation 'com.ivieleague.injekt:injekt-jvm:1.7.0'
}