JUnit测试用例不起作用

时间:2013-08-21 07:30:06

标签: java string junit4

我正在尝试测试这种方法:

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

为什么这不想工作?

3 个答案:

答案 0 :(得分:1)

我想从API文档中trim()方法返回一个String实例,你需要捕获该实例并对其进行操作然后返回(返回的)实例。

答案 1 :(得分:1)

String在Java中是不可变的。你必须做这样的事情:

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

您可能还需要更改replaceAll中使用的正则表达式(我无法测试):

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

答案 2 :(得分:0)

我猜你应该使用正则表达式。在这种情况下:

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

玩得开心