【问题标题】:How can I check if a radio button is selected in Jetpack Compose UI tests?如何检查 Jetpack Compose UI 测试中是否选择了单选按钮?
【发布时间】:2021-12-05 09:49:16
【问题描述】:

有人知道如何检查,在 Android UI 测试中为 Jetpack Compose 创建的 UI 选择了哪个单选按钮?

我通过附加的代码制作了一个单选按钮组,但我不知道如何识别 UI 测试选择了哪一个。

Column(Modifier.selectableGroup()) {....}

是否有某种断言返回单选按钮组的选定单选按钮?

【问题讨论】:

    标签: android kotlin automated-tests android-jetpack-compose android-jetpack-compose-testing


    【解决方案1】:

    只需将 RadioButton 的 onClick 属性设置为某个回调,提供一个 id 来识别选择了哪个按钮:

    @Composable
    fun MyRadioButton(
       onClick: (id) -> Unit
    ) {
        RadioButton(
            onClick = {
                onClick("myRadioButtonId")
            }
        )
    }
    

    【讨论】:

    • 我已经标记了每个单选按钮,但我不知道如何在测试中检索选择了哪个单选按钮。如果我使用 if 语句,例如if(radioButton1.assertIsSelected()) 我将获得语义节点交互而不是布尔值。如何检查测试中选择了哪些?
    • 您应该调用视图模型来确定单选按钮的状态,而不是 UI 元素本身。因此,在我提供的代码示例中,在调用 onClick 时在视图模型中设置状态,并让 UI 测试从视图模型中检索状态。
    猜你喜欢
    • 2021-10-21
    • 1970-01-01
    • 2014-04-09
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多