android / android/android-test
ActionOnItemAtPositionViewAction does not take into account the provided ViewAction's constraints
- Lingua principale
- Java
- Stelle
- 1.2k
- Fork
- 342
- Merge medio
- 11h 29m
- PR unite (30g)
- 2
Descrizione
### Description
`ActionOnItemAtPositionViewAction` calls `getDescription()` and `perform()` of its `viewAction` field, but it never calls its `getConstraints()`. So, the action is run regardless if the item view satisfies the constraints or not.
### Steps to Reproduce
Execute in unit test (with robolectric)
```kotlin
onView(withId(R.id.myRecyclerView)).perform(
actionOnItemAtPosition(
0, clickOnChildView(R.id.childView)))
```
where
```kotlin
fun clickOnChildView(childId: Int) = object : ViewAction {
override fun getDescription(): String =
"Click on child view with id $childId"
override fun getConstraints(): Matcher = isDisplayed()
override fun perform(uiController: UiController?, view: View?) {
view?.findViewById(childId)?.performClick()
}
}
```
and
```kotlin
childView.visibility == View.GONE
```
### Expected Results
The action should fail since the child view is not displayed.
### Actual Results
The child view is clicked as if displayed.
### AndroidX Test and Android OS Versions
core 1.3.0
rules 1.3.0
espresso 3.3.0
junit-ktx 1.1.2
robolectric 4.3.1
android API 29
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Iniziare dal punto di ingresso ActionOnItemAtPositionViewAction e riprodurre il problema con l'esempio di unit test Robolectric riportato. Verificare che una vista figlia che non soddisfa il vincolo ViewAction fornito impedisca l'esecuzione dell'azione, mentre una vista figlia visualizzata continui a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- android, kotlin
- Ambito
- mobile-dev, testing
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 35/100