Как проверить вызовы методов в разных CoroutineScope в модульных тестах с помощью Mockk?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как проверить вызовы методов в разных CoroutineScope в модульных тестах с помощью Mockk?

Сообщение Anonymous »

Я пытаюсь проверить, что вызывается этот метод в объекте зависимости, но поскольку это происходит в разных CoroutineScope, coVerify всегда терпит неудачу.
Как проверить, что вызывается someMethod()?
Вот мой код:
SUT:
class SomeClass(
private val coroutineScope: CoroutineScope,
private val someDependency: SomeDependency
) {
fun run() {
coroutineScope.launch {
someDependency.someMethod()
}
}
}

Зависимость:
class SomeDependency {
fun someMethod() {
println("SomeDependency.someMethod")
}
}

Тест (всегда проваливается):
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() }
}

}


Подробнее здесь: https://stackoverflow.com/questions/779 ... with-mockk
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»