2013-08-21 3 views
0

Я пытаюсь проверить этот метод:JUnit тест не работает

public static String trimExtraSpace(String str) { 
    str.trim().replaceAll(" +", " "); 
    return str; 
} 

Junit тест, который у меня есть:

@Test 
public void testTrimExtraSpace() { 
    String str = " foo \n b a r "; 
    assertEquals("foo \n b a r", Strings.trimExtraSpace(str));  
} 

Reuslt: Screenshot

Почему это не хотите работать?

ответ

1

String s неизменны в Java. Вы должны сделать что-то вроде этого:

public static String trimExtraSpace(String str) { 
    String trimmedStr = str.trim().replaceAll(" +", " "); 
    return trimmedStr; 
} 

Вы также, вероятно, придется изменить регулярное выражение используется в replaceAll (я не могу проверить):

String trimmedStr = str.trim().replaceAll("\\s+", " "); 
+0

Спасибо за четкую информацию. Это работает для меня – Dozent

1

Я полагаю, из документа API метод trim() возвращает экземпляр String, вам нужно поймать этот экземпляр и выполнить операцию над ним, а затем вернуть экземпляр (возвращенный).

0

Я думаю, вы должны использовать регулярное выражение. В этом случае:

urString = yourString.replaceAll("\\s+", " "); 

весело провести время

Смежные вопросы