String数据测试的边界条件是什么?

时间:2018-02-06 11:26:55

标签: java unit-testing junit4

我正在通过Junit测试java方法。该方法接受一个String然后返回一个修改字符串。我已经编写了一个通用测试,一个Null和Empty String的测试。我可以写什么测试?该测试的边界条件是什么? 用于测试该方法的大小字符串是什么?

public String reverse(String text) {

String[] textFragments = text.split(" ");
StringBuilder stringBuilder = new StringBuilder();

for (int i = 0; i < textFragments.length; i++) {
    char[] chars = textFragments[i].toCharArray();

    int leftElementIndex = 0;
    int rightElementIndex = textFragments[i].length() - 1;

    while (leftElementIndex < rightElementIndex) {

    boolean isLeftLetter = Character.isLetter(chars[leftElementIndex]);
    boolean isRightLetter = Character.isLetter(chars[rightElementIndex]);

    if (isLeftLetter && isRightLetter) {
        swap(chars, leftElementIndex, rightElementIndex);
        leftElementIndex++;
        rightElementIndex--;
    } else {         
        leftElementIndex = (!isLeftLetter) ? ++leftElementIndex : leftElementIndex;
        rightElementIndex = (!isRightLetter) ? --rightElementIndex : rightElementIndex;
    }
    }
    stringBuilder.append(new String(chars));

    if (i != (textFragments.length - 1)) {
    stringBuilder.append(" ");
    }
}
return stringBuilder.toString();
}

1 个答案:

答案 0 :(得分:0)

边界条件是从需求派生的,所以这一切都取决于你如何定义预期的输入字符串。所以如果&#34; text&#34;有限的长度为10,非空,空格分隔,只有小写,然后这些组成为其边界的一部分。基于提供的代码,它可以被定义为非null,非空,至少一个字符长字符串,并且因为你的循环取决于数组大小,然后尝试通过传递具有多个空格的字符串来欺骗split方法字符之间或仅由空格组成的字符串。