Как проверить стиль шрифта текста в Android Espresso

В нашем приложении у нас есть кнопка входа в систему с текстом «ВХОД».

Когда я запускаю следующий тест, он терпит неудачу:

введите здесь описание изображения

Это не удается, потому что «LOGIN» не соответствует «Login»

введите здесь описание изображения

mText — «Войти», даже если он отображается как «ВХОД» на самой кнопке. Я предполагаю, что это стиль шрифта, который делает все заглавными буквами? Если да, может ли кто-нибудь сказать мне, как я могу убедиться, что используется правильный стиль шрифта? Или.. как мне вытащить текст, как он на самом деле отображается на экране для сравнения?


person reutsey    schedule 04.08.2017    source источник
comment
Я предполагаю, что это стиль шрифта, который делает все заглавными буквами? -- да. По умолчанию Material Design требует использования заглавных букв в заголовках кнопок, поэтому они применяются на уровне темы как для тем на основе Theme.Material, так и для тем на основе Theme.AppCompat.   -  person CommonsWare    schedule 04.08.2017


Ответы (2)


Я использую следующий сопоставитель, чтобы проверить, написан ли текст заглавными буквами:

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);
        }
    };
}
person Philippe A    schedule 09.10.2017

Теперь, если мы используем тему по умолчанию в соответствии с новой версией, тогда текст кнопки будет отображаться в ЗАГЛАВНОМ регистре, но вы можете использовать параметр textAllCaps, чтобы включить или отключить его. Пожалуйста, обратитесь к данной оснастке

введите здесь описание изображения

person Alpesh Sorathiya    schedule 04.08.2017
comment
Вопрос в том, как создать тест/сопоставитель в эспрессо, чтобы убедиться, что текст написан заглавными буквами (имеет правильный стиль шрифта) - person reutsey; 04.08.2017