android / android/android-test

Synchronization capabilities: allow to wait for a View or Fragment to exist

Open
#2,147 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Java
Stars
1.2k
Forks
342
Avg merge
11h 29m
Merged PRs (30d)
2

Description

Espresso should allow to wait for a View or Fragment to appear (with a timeout).

The "Idling system" makes a lot of assumptions about the implementation details of the app, and makes difficult to test the **UI** of an asynchronous app without having to instrument async operations in the app, which is simply not realistic for modern apps where everything is async (or should be anyway). This makes the success of the test depend on instrumentation code spread around the codebase instead of just the actual behaviour of the app and the code of the test itself.

In general, testing the UI should not _require_ knowledge about the implementation details of the backend.

It would help if the test API allowed to wait for a View or Fragment to appear, with a timeout or other failure conditions.

Many thanks

Contributor guide

Open the contributing guide

Research direction

Start by reviewing Espresso's Idling system and the synchronization behavior described in this issue. Define how the test API should wait for a View or Fragment, including timeout and failure conditions; done requires a settled design and corresponding coverage for asynchronous UI appearance.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.