💪
Jetpack Compose UI TestでperformKeyPressを使う
やりたいこと
TextFieldでEnterボタンを押したい。
色々と調べた
performKeyPress()にはKeyEventを引数に取ること、そしてKeyEventはNativeKeyEventを引数に取るらしい。
しかし、具体的なsample codeが一つもなくて、ものすごく悩んだ。ここで、良い文献を挙げられないぐらい、何もない(久しぶりに、暗中模索をした)。
結局、performKeyPressを書いた時に、候補で出てくる引数で、それっぽいものを片っ端から入れていって、動くコードを見つけた。
動くコード
composeTestRule
.onNode(
hasContentDescription("Input Address")
and hasText(nameLabel)
)
.performKeyPress(
KeyEvent(
NativeKeyEvent(100, 100, ACTION_DOWN, KEYCODE_ENTER, 1)
)
)
composeTestRule
.onNode(
hasContentDescription("Input Address")
and hasText(nameLabel)
)
.performKeyPress(
KeyEvent(
NativeKeyEvent(100, 100, ACTION_UP, KEYCODE_ENTER, 1)
)
)
Discussion