创建新的SpannableStringBuilder将返回null

问题描述 投票:-6回答:2

这是我的单元测试。不知何故,当我使用非空字符串参数创建实例化SpannableStringBuilder实例时,它似乎为null。这段代码出了什么问题?

public class CardNumberTextWatcherTest {

private CardNumberTextWatcher watcher;

@Before
public void setUp() throws Exception {
    watcher = new CardNumberTextWatcher();
}


@Test
public void afterTextChanged_cardNumberDividedWithSpaces() {
    assertTransformText("1111222233334444", "1111 2222 3333 4444");
}

private void assertTransformText(final String testStr,
                                 final String expectedStr) {
    final CardNumberTextWatcher watcher = new CardNumberTextWatcher();
    final Editable actualStr = new SpannableStringBuilder(testStr);
    // When I debug I see that actualStr value is null. Therefore test 
    //doesn't pass. What's the problem?
    watcher.transformText(actualStr);
    assertEquals(expectedStr, actualStr.toString());
}


}
java android spannablestringbuilder
2个回答
1
投票

你正在调用actualStr.toString(),这是断言所比较的,而不是actualStr本身,所以寻找通过SpannableStringBuilder的路线,看看什么可能导致null来自toString()。可能testStrnull


0
投票

问题出在测试目录中。一旦SpannableStringBuilder成为Android SDK的一部分,它就无法在常规JUnit测试目录中解析。当我将我的类移动到androidTest目录时,一切都开始按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.