Как получить Spannable и его цвет из TextView для записи unit test
private void createStringEndingInRedColor(TextView tv, String word1, String word2) {
Spannable word = new SpannableString(word1);
tv.setText(word);
Spannable wordTwo = new SpannableString(word2);
wordTwo.setSpan(new ForegroundColorSpan(mContext.getResources().getColor(Color.RED)), 0, wordTwo.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.append(wordTwo);
}
Я пытаюсь написать unit test (используя Robolectric) для TextView tv, чтобы гарантировать, что wordTwo - Color.RED. Тем не менее, у меня есть только ссылка на TextView tv. Как можно решить такую задачу?
Ответы
Ответ 1
Вы можете получить цвет Spannable
от TextView
с помощью метода getSpans()
ForegroundColorSpan[] colorSpans = ((SpannableString)textView.getText()).getSpans(0, textView.getText().length(), ForegroundColorSpan.class);
assertTrue(colorSpans[0].getForegroundColor() == Color.RED)