gpt4 book ai didi

java - 此测试值会在系统中造成感染吗?

转载 作者:行者123 更新时间:2023-12-03 08:54:44 26 4
gpt4 key购买 nike

我的测试用例值为:

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,但它不会处于无效状态,因为该方法的目的是检查最长的String,而索引1并不是最长的。

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

关于以下网页,这是否是一种感染: http://www.ironiacorp.com/apps/wiki/testing/RIP_model

最佳答案

由于它依靠两个条目而不是一个条目,因此现在已损坏。这是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++;

恕我直言,该代码没有任何内容表明以后的代码无法逆转所引起的“损坏”,因此,我不同意“在执行有故障的位置后,程序的状态必须不正确”

你应该写
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;
}

关于java - 此测试值会在系统中造成感染吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29680764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com