Мое приложение Android использует JetPack Compose. Внутри одной из моих функций @composable я получаю прицел:
Код: Выделить всё
@Composable
fun MyComposable() {
val scope = rememberCoroutineScope()
// ...
Затем я использую его в одной из моих кнопок 'onclick для запуска функции приостановки:
Код: Выделить всё
Button(onClick = {
scope.launch {
doThings()
}
}) {
// ...
}
}
suspend fun doThings() {
// ...
}
< /code>
Я хотел бы провести тест на эспрессо результатов клика. Однако сразу после < /p>
onNode(/* ... */).performClick()
< /code>
doThings()
еще не сделано. Я хотел бы подождать, пока не закончится dothings () без использования thread.sleep () , что -то вроде:
Код: Выделить всё
waitUntil { theThingsAreDone() }
< /code>
Is there any way I can do this without putting the test code in my production code?
If I could replace scope
в моем тесте, тогда я мог бы использовать тот, который увеличил и уменьшил счетчики chountingidlingresource , что заставило эспрессо ожидание его автоматически. Передача Scope в качестве параметра MyComposable может дать мне этот элемент управления, но затем я бы потерял поведение MomplyCoroutinescope () . Могу ли я изменить Scope в своем тесте, при этом он все еще следит за поведением MomplyCoroutinescope () ?
Подробнее здесь:
https://stackoverflow.com/questions/778 ... pe-from-re