In Espresso it's possible to check if the view is displayed:
onView(withText("To create a test configuration in Android Studio, complete the following steps")).check(matches(isDisplayed()));
But what I need to check is if the text of my TextView
is completely displayed (not the TextView
itself). Here is my XML layout:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="0dp"
android:layout_height="256dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:background="#fca"
android:textSize="48sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</android.support.constraint.ConstraintLayout>
If the text of the TextView
is "To create a test configuration in Android Studio, complete the following steps," it's not completely displayed:
If the text is shorter, I see it all:
Putting the TextView
in a ScrollView
is not an option.
Autosizing TextViews is not an option, either.
Sure, I could change the text and make sure it's completely displayed using the Preview view of the XML layout editor in Android Studio. But what if I have 6 locales, 9 emulators and 5 screens to check. 6 * 9 * 5 = 270 screens! It's time-consuming to test this thing manually.
Although I'm not directly answering your questions, here are suggestions:
Pseudo-localization is a testing method available in Android that will replace your production-texts with test-texts that usually cause UI/translation problems. Basically if your app is still readable with a pseudo-locale, you're good to go.
doc on how to use it: https://developer.android.com/guide/topics/resources/pseudolocales.html
TextView is now capable of automatically shrinking the text font size so that the whole text fits within its boundaries.
doc: https://developer.android.com/guide/topics/ui/look-and-feel/autosizing-textview.html