【发布时间】:2021-02-27 21:30:14
【问题描述】:
所以我编写了这部分应用程序。它有效,但并非一直有效。
public void setStatus(int id, int area, boolean free)
{
Iterator<Ambulance> ab = cars.iterator();
while(ab.hasNext()){
Ambulance ambulance = ab.next();
if(ambulance.getID() == id){
ambulance.moveTo(area);
ambulance.setBusy();
}
}
}
对于这个 setStatus,我有这个测试条件,但是条件的这部分assertEquals(!oldStatus, selected.isFree()); 不起作用。我该怎么办?
public void moveAmbulance()
{
// Select a random Ambulance to be moved.
Ambulance selected = shadow.get(rand.nextInt(shadow.size()));
int oldArea = selected.getArea();
boolean oldStatus = selected.isFree();
control.setStatus(selected.getID(), oldArea + 1, !oldStatus);
assertEquals(oldArea + 1, selected.getArea());
assertEquals(!oldStatus, selected.isFree());
}
【问题讨论】:
-
无关:您可以将
while循环替换为增强的for循环:for (Ambulance ambulance : cars) { … }