Я только что наткнулся на проблему снова, где я еще не нашел решения, поэтому я подумал, что я спрошу вас :)
Предположим, у меня есть следующий метод (Kotlin):
fun getValue(): SpannableString {
val value = "MyTestValue"
val subString = "Test"
// init spannable string
val spannableString = SpannableString(value)
// get position of substring
val position = value.indexOf(subString)
// insert span
spannableString.setSpan(BackgroundColorSpan(ContextCompat.getColor(context, R.color.yellow)), position, position + subString.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
// return result
return spannableString
}
И это мой метод Unit-Test:
@Test
fun `value | on filter | returns correct value`() {
// define mock behavior
val model = TestUtils.getTestModel() //returns a test model
// init Observable
val observable = TestObservable(model)
// check assertions
assertEquals("???", observable.getValue()) // I don't know what to expect here
}
Если я сейчас хочу проверить этот метод в модульном тесте, я всегда получаю 'null' в качестве ответа, потому что SpannableString возвращает это значение.Я знаю, что мог бы запустить тест в контексте androidTest, но там модульные тесты не имеют никакого отношения (на мой взгляд).
Я думаю, что должен быть какой-то способ проверить это без запуска эмулятора.
Есть предложения?