我想在测试我的课程之前通过模拟覆盖 Kodein 绑定。
有我的 Kodein init:
val kodein = Kodein {
bind<MyRepository>() with provider { MyRepository() }
}
然后我的课要测试:
class MyClass {
private val mMyRepository: MyRepository by kodein.instance()
suspend fun sendData() = mMyRepository.sendData()
}
还有我的测试课:
@RunWith(AndroidJUnit4::class)
class MyClassTest {
@MockK
lateinit var mMyRepositoryMock: MyRepository
val mMyClass = MyClass()
@Before
fun setUp() {
MockKAnnotations.init(this, relaxUnitFun = true)
}
@Test
fun testSendData() {
coEvery { mMyRepositoryMock.sendData() } returns Unit
runBlocking {
mMyClass.sendData()
.collect {
assertTrue(true)
}
}
}
}
我想mMyRepository
在MyClass
测试期间通过mMyRepositoryMock
.
有人可以帮我做吗?