【问题标题】:Jetpack Compose back button press in automation testJetpack Compose 在自动化测试中按下后退按钮
【发布时间】:2022-10-02 04:25:44
【问题描述】:

推荐的方法是什么在喷气背包组合测试中触发后退按钮按下(在真实设备上运行)?

我正在努力:

@get:Rule()
val composeTestRule = createAndroidComposeRule(MyActivity::class.java)

@Test
fun test() {
    // Here would be some setup code, assertions and navigating into a second screen
     
    // Navigate back to previous screen
    composeTestRule.onRoot().performKeyPress(KeyEvent(NativeKeyEvent(0, KeyEvent.KEYCODE_BACK)))

    // continue... 
}

但我得到了错误:

java.lang.IllegalStateException: KeyEvent can\'t be processed because this key input node is not active.

我对按键/导航没有任何特殊逻辑,只使用导航撰写库的开箱即用功能。

    标签: android-jetpack-compose android-jetpack-compose-testing


    【解决方案1】:

    我最终使用了 ActivityScenarioRule:

    composeTestRule.activityRule.scenario.onActivity { activity ->
       activity.onBackPressed()
    }
    

    不确定这是否是正确的方法,但它有效。

    【讨论】:

      【解决方案2】:

      我们可以使用以下代码从可组合屏幕测试设备后退按钮

      Espresso.pressBack()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-05
        • 2022-11-10
        • 2023-02-11
        • 1970-01-01
        • 2016-12-08
        • 2017-12-23
        • 2021-11-28
        • 1970-01-01
        相关资源
        最近更新 更多