![](/img/trans.png)
[英]cannot determine the cause of these test errors, debugger isnt functioning here, nor can i figure out how to resolve this
[英]cannot figure out why this test is failing here in adding a item to ArrayList
method code here:
public boolean addItem(MediaItem item)
{
for (int count = 0; count < Library.size(); count++){
String callNum = Library.get(count).getCallNumber();
if(item.getCallNumber().compareToIgnoreCase(callNum) == 0)
{
while( item.getCopyNumber() < Library.get(count).getCopyNumber())
{
int copyNum = item.getCopyNumber();
copyNum++;
item.setCopyNumber(copyNum);
}
Library.add(item);
return true;
} else if (item.getCallNumber().compareToIgnoreCase(callNum) != 0)
{
item.setCopyNumber(1);
Library.add(item);
return true;
}
}
return false;
}
testCases:
public void testAddItem(){
AnytownLibrary newlib = new AnytownLibrary();
assertNotNull(newlib);
MediaItem newItem = new Book();
MediaItem nextItem = new Book();
assertNotNull(nextItem);
assertNotNull(newItem);
newItem.setCallNumber("1");
nextItem.setCallNumber("1");
newlib.addItem(newItem);
assertTrue(newlib.addItem(newItem));
newlib.addItem(nextItem);
assertTrue(newlib.addItem(nextItem));
}
我无法弄清楚为什么这会失败,它一直在这里抛出断言错误,并且它没有告诉我它只是输出是错误的,所以我不确定是什么问题,我已经完全测试了我的 get 和 set 方法,它们是正确的; 和这个版本只是断言(itemname)而不是调用号返回之前传递的true,所以我确定答案在方法本身的某个地方
您将项目添加到库的逻辑是错误的。 添加第一个项目总是会失败,因为 for 循环不执行,因为大小为零。 所以什么都不会发生。 由于这失败,所有后续的 addItem 调用也将失败。 有很多方法可以做到这一点,一个简单的方法是检查大小是否为零并直接添加到列表中并返回。 否则使用 ur for 循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.