Evghenii
03/08/2024, 4:54 PMclass MyClass(dispatcher: CoroutineDispatcher = Dispatchers.Default) {
private val scope = CoroutineScope(dispatcher)
fun start() {
scope.launch {
while (true) {
// do stuff
delay(1000L)
}
}
scope.launch {
OtherObject.someSharedFlow.collect {
ThirdObject.doSomeStuff()
}
}
}
}
private val testSharedFlow = MutableSharedFlow<SomeEvent>()
@Test
fun someTest() = runTest {
mockkObject(OtherObject)
every { OtherObject.someSharedFlow } returns testSharedFlow.asSharedFlow()
mockkObject(ThirdObject)
every { ThirdObject.doSomeStuff() } answers {}
val myClass = MyClass(StandardTestDispatcher(testScheduler))
myClass.start()
testSharedFlow.emit(SomeEvent()).also {
verify { ThirdObject.doSomeStuff() } // this fails
}
unmockkObject(ThirdObject)
unmockkObject(OtherObject)
}