Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 此测试值是否会在系统中造成感染?_Java_Unit Testing_Error Handling - Fatal编程技术网

Java 此测试值是否会在系统中造成感染?

Java 此测试值是否会在系统中造成感染?,java,unit-testing,error-handling,Java,Unit Testing,Error Handling,我的测试用例值为: List<String> string = new LinkedList(); string.add("Hello"); string.add("hi"); string.add("bye"); 测试以下方法: // Will return longest length of a string within the list. public int maxLengthOfString(List<String> listOfStrings) {

我的测试用例值为:

List<String> string = new LinkedList();
string.add("Hello"); string.add("hi"); string.add("bye");
测试以下方法:

// Will return longest length of a string within the list. 
public int maxLengthOfString(List<String> listOfStrings) {
    int maxLength - Integer.MIN_VALUE;
    int index = 0;
    if (listOfStrings != null) {
        while(index < strings.size()){
            if(strings.get(index).length() > maxLength){
                maxLengthOfString = listOfStrings.get(index).length();
                index++;
            }
            index++;
        }
    }
}
return maxLengthOfString;
我认为R.I.p.模型中的感染意味着程序在执行过程中的某个时刻处于无效状态。上面的列表仍将跳过索引1,但它不是处于无效状态,因为该方法的目的是检查最长的字符串,而索引1不是最长的

我的教授说这是一种感染,因为跳过了索引1


这是一种感染吗?关于以下网页:

它现在被破坏了,因为它依赖于两个条目而不是一个条目。在这种情况下,for-each循环不仅要短得多,而且不会有错误

        if(strings.get(index).length() > maxLength){
            maxLengthOfString = listOfStrings.get(index).length();
            index++; // skip an entry.
        }
        index++;
您可以说第一行index++;如果是故障,则不能保证此时系统不正确,代码的微小更改表明可以在不更改代码的情况下进行纠正

        if(strings.get(index).length() > maxLength){
            maxLengthOfString = listOfStrings.get(index).length();
            index++; // skip an entry.
        } else
            index++;
IMHO没有任何关于代码的建议,表明以后的代码无法逆转造成的损坏,因此我不同意在执行有故障的位置后,程序的状态一定是不正确的

你应该写下来

public int maxLengthOfString(List<String> listOfStrings) {
    int maxLength = Integer.MIN_VALUE;
    if (listOfStrings != null)
        for(String s : listOfStrings)
            if (maxLength < s.length())
                maxLength = s.length();
     return maxLength;
}

您的代码和新发明的大括号有问题!-运算符。即使列表为空,也只查看第一个元素。你能提供一个链接到你所说的感染吗?你可以试试listOfStrings.stream.mapToIntString::length。max@PeterLawrey看起来他在谈论这是课堂上提出的一个问题。关于上述模型中的感染定义,这是否被视为感染?@MiguelJ。这取决于你认为错在哪里。我认为这不是一个常用的术语。