java - 反转字符串的测试用例

标签 java string testing

我正在尝试练习 QA 面试,我想处理尽可能多的测试用例。我相信我的方法适用于所有情况,除非输入为 null 我不确定如何处理该异常。在代码运行之前,编译器会先给我一个错误。所以我不确定如何处理该异常。我四处阅读,不推荐 catching NullPointerException。我将如何处理 null 输入。另外如果有谁能想到其他的测试用例,我也很乐意测试看看!

这是我的测试用例:

""
"abcdef"
"abbbba"
null

不太确定如何处理

转义字符

"\n"  --> "n\"
"\t"  --> "t\"

特殊字符如

áe  -->  eá 

代码:

public static String reverseStr(String str) {
    int len = str.length();
    if (len <= 0) {
        return "Empty String";
    }
    char[] strArr = new char[len];
    int count = 0;
    for (int i = len - 1; i >= 0; i--) {
        strArr[count] = str.charAt(i);
        count++;
    }
    return new String(strArr);
}

经过进一步的建议,这里是更新的代码:

public static String reverseStr(String str) {
    if ( str == null ) {
          return null;
    }
    int len = str.length();
    if (len <= 0) {
        return "";
    }
    char[] strArr = new char[len];
    int count = 0;
    for (int i = len - 1; i >= 0; i--) {
        strArr[count] = str.charAt(i);
        count++;
    }
    return new String(strArr);
}

最佳答案

如果string为null,编译器不会报错,但运行代码时会抛出NullPointerException。你的 reverseStr 方法可以检查

if ( str == null ) {
  return "null string passed in";
}

或者你可以做类似的事情

int len = (str != null) ? str.length() : 0

现在 null 和空字符串的长度都为 0。这取决于您是否要区别对待 null 和 empty。

关于java - 反转字符串的测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22368754/

相关文章:

java - 测试 url 连接 java html

c - 为accept()系统调用工作

java - 变化计算器减一

java - Cloud Foundry 中前端应用程序和后端应用程序之间的通信

java - JavaFX 中的样式选择框

c# - 使用 List<string> 替换字符串

c++ - 如何比较作为模板类传递的字符串?

testing - 开源 ISDN 协议(protocol)测试

java - Spinner.getSelectedItem().toString 返回字符串,但在 API 发布请求中传递时变为空

python - 用 `and` 条件替换 pandas 列中的部分字符串