2017-08-04 2 views
1

Auf unserer Anwendung haben wir eine Login-Schaltfläche, die den Text "LOGIN" hat.So überprüfen Sie Text Schriftschnitt Stil in Android Espresso

Wenn ich den folgenden Test ausführen, schlägt es:

enter image description here

Es schlägt fehl, weil "LOGIN" nicht "Login"

enter image description here

Die mText „Login ist überein "obwohl es als" LOGIN "auf dem Button selbst angezeigt wird. Ich nehme an, dass dies der Schrifttyp Style ist, der alles in caps macht? Wenn ja, kann mir jemand sagen, wie ich überprüfen kann, ob der richtige Schriftschnitt verwendet wird? Or..wie kann ich den Text, wie er tatsächlich auf dem Bildschirm angezeigt wird, zum Vergleich ziehen?

+1

-- Ja. Standardmäßig fordert Material Design Unterkapiteln für Schaltflächenbeschriftungen an, sodass sie diese auf der Themenebene sowohl für 'Theme.Material'- als auch für' Theme.AppCompat'-basierte Themen anwenden. – CommonsWare

Antwort

0

Jetzt, wenn wir das Standardthema wie in der neuen Version verwenden, wird der Text der Schaltfläche als UPPER-Fall angezeigt, aber Sie können die Option textAllCaps aktivieren oder deaktivieren. Bitte beachten gegeben Snap

enter image description here

+0

Die Frage ist, wie man den Test/Matcher in Espresso erstellt, um zu verifizieren, dass der Text groß geschrieben ist (hat den richtigen Schriftschnittstil) – rfodge

0

Ich verwende die folgenden Matcher zu prüfen, ob der Text aktiviert wird: „Ich gehe davon aus, dass dies der typefaceStyle ist, dass es alle in den Schutzkappen macht“

public static Matcher<View> withTransformedText(final String text) { 
    return new BoundedMatcher<View, TextView>(TextView.class) { 
     @Override 
     public boolean matchesSafely(TextView textView) { 
      final TransformationMethod transformationMethod = textView.getTransformationMethod(); 
      final String transformedText = transformationMethod.getTransformation(textView.getText(), textView).toString(); 
      return text.equals(transformedText); 
     } 

     @Override 
     public void describeTo(Description description) { 
      description.appendText("with transformed text: " + text); 
     } 
    }; 
} 
Verwandte Themen