I am trying to verify that method in dependency object is called, but since it happens in different CoroutineScope coVerify always fails.
How to verify that someMethod() is called?
Here is my code:
SUT:
class SomeClass(
private val coroutineScope: CoroutineScope,
private val someDependency: SomeDependency
) {
fun run() {
coroutineScope.launch {
someDependency.someMethod()
}
}
}
Dependency:
class SomeDependency {
fun someMethod() {
println("SomeDependency.someMethod")
}
}
Test(always fails):
class SomeClassTest {
@MockK(relaxed = true)
private lateinit var someDependency: SomeDependency
private val testScope = TestScope()
private lateinit var someClass: SomeClass
@Before
fun setup() {
MockKAnnotations.init(this)
someClass = SomeClass(
testScope,
someDataSource
)
}
@Test
fun `when run, should call someDependency someMethod`() = runTest {
someClass.run()
coVerify { someDependency.someMethod() }
}
}
Found how to use same scope for SUT class and test itself: