使用 JetpackCompose LazyColumn 时 Compose-Espresso 链接变得空闲超时

Hen*_*aro 8 android kotlin android-jetpack-compose

我正在尝试在 JetpackCompose 中测试我的惰性列,但不断收到此错误:[Compose-Espresso link] to变得空闲超时

我尝试使用 composeTestRule.waitforIdle() 但它不起作用。我在这里缺少什么?

@HiltAndroidTest
class MainTest {

    @get:Rule(order = 1)
    var hiltTestRule = HiltAndroidRule(this)

    @get:Rule(order = 2)
    var composeTestRule = createAndroidComposeRule<MainActivity>()

    private val context = InstrumentationRegistry.getInstrumentation().context

    @Before
    fun setup() {
        hiltTestRule.inject()
        composeTestRule.setContent {
            HomePage(
                context = context,
            viewModel = composeTestRule.activity.viewModels<MarvelViewModel>().value,
            onClick = {}
            )
        }
        composeTestRule.onRoot().printToLog("currentLabelExists")

    }


    @Test
    fun isResultDisplayedOnLazyColumn() {
        composeTestRule.waitForIdle()
        composeTestRule.onNode(hasImeAction(ImeAction.Done)).performTextInput("iron man")
        composeTestRule.onNode(hasImeAction(ImeAction.Done)).performImeAction()

        composeTestRule.onNodeWithTag(TAG_LAZY_COLUMN, useUnmergedTree = true).assertIsDisplayed()
Run Code Online (Sandbox Code Playgroud)

小智 3

我也有这个问题。根本原因是我的撰写视图消失了。看来 ComposeTestRule IdlingResource 不喜欢然后你在 Gone ComposeView 上调用 setContent