android / android/android-test

ActionOnItemAtPositionViewAction does not take into account the provided ViewAction's constraints

Offen
#758 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
1.2k
Forks
342
Ø Merge
11 Std. 29 Min.
Gemergte PRs (30 T.)
2

Beschreibung

### 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

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginnen Sie am Einstiegspunkt ActionOnItemAtPositionViewAction und reproduzieren Sie das Problem anhand des Robolectric-Unit-Test-Beispiels aus dem Bericht. Verifizieren Sie, dass eine untergeordnete Ansicht, die die bereitgestellte ViewAction-Einschränkung nicht erfüllt, verhindert, dass die Aktion ausgeführt wird, während eine angezeigte untergeordnete Ansicht weiterhin funktioniert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
android, kotlin
Bereich
mobile-dev, testing
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.