簡體   English   中英

Jetpack Compose UI 測試按鈕 onClick

[英]Jetpack Compose UI Testing Button onClick

我正在嘗試測試 buttonClick 如何更改 UI。

測試設置如下:

composeRule.setContent {
    var i by remember { mutableStateOf(0) }
    Button(modifier = Modifier.testTag("TEST"), onClick = { i++ }) {
        Text(text = i.toString())
    }
}

我的實際測試是這樣的:

val button = composeRule.onNodeWithTag("TEST")

button.assertTextEquals("0")
button.performClick()
button.printToLog("Test")
button.assertTextEquals("1")

第一個斷言通過,但是在檢查文本是否應等於1時失敗:

java.lang.AssertionError: Failed to assert the following: (Text + EditableText = [1])
Semantics of the node:
Node #2 at (l=0.0, t=66.0, r=176.0, b=165.0)px, Tag: 'TEST'
Role = 'Button'
Text = '[0]'
Actions = [OnClick, GetTextLayoutResult]
MergeDescendants = 'true'
Selector used: (TestTag = 'TEST')

點擊后的 printToLog() 如下所示:

Printing with useUnmergedTree = 'false'
Node #2 at (l=0.0, t=66.0, r=176.0, b=165.0)px, Tag: 'TEST'
Role = 'Button'
Text = '[0]'
Actions = [OnClick, GetTextLayoutResult]
MergeDescendants = 'true'

因此,似乎在執行點擊時,內容沒有重新組合,或者由於某種原因,點擊實際上並沒有發生。

有誰知道這里可能會發生什么?

我解決了這個問題!

我的模擬器正在運行 API 級別 32.. 看起來 Compose 交互庫還不能完全與 32 一起使用。

降級 API 級別后,代碼無需任何更改即可工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM