2017-12-19 2 views
-6

여기에 제 단위 테스트가 있습니다. 어떻게 든 null이 아닌 문자열 인수로 SpannableStringBuilder 인스턴스를 인스턴스화하면 null로 나타납니다. 이 코드의 문제점은 무엇입니까?새 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()); 
} 


} 
+0

스택 추적 또는 테스트 출력을 제공해주십시오. – PillHead

+0

예외 추적 추적을 공유하여 도와 드리겠습니다. – EyadMhanna

답변

0

테스트 디렉토리에 문제가 있습니다. SpannableStringBuilder이 Android SDK의 일부인 경우 일반 JUnit 테스트 디렉토리에서 확인할 수 없습니다. 이 androidTest 디렉토리으로 클래스를 옮기면 모든 것이 예상대로 작동하기 시작했습니다.

1

당신은 주장이 너무 toString()에서 null을 초래할 수있는 것을 볼 수 SpannableStringBuilder를 통해 경로를 찾지 actualStr 자체와 비교되는 것 인 actualStr.toString()을 요구하고있다. 아마 testStrnull입니다.

관련 문제