android / android/android-test
ActionOnItemAtPositionViewAction does not take into account the provided ViewAction's constraints
- 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
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