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