如何在Android UnitTests中使用SpannableString

时间:2019-07-05 09:14:40

标签: android unit-testing testing spannablestring

我又偶然发现了一个尚未找到解决方案的问题,所以我想问你:)

假设我有以下方法(科特琳):

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
}

这是我的单元测试方法:

@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上下文中运行测试,但是单元测试无关(我认为)。

我认为应该有一些方法可以在不运行模拟器的情况下进行测试。

有什么建议吗?

0 个答案:

没有答案