我在下面加了一段代码,我似乎无法弄清楚我做错了什么。代码是我正在编写的程序的一部分,该程序使用包含多个显式参数的虚拟加油站对象填充数组列表。其中一个是“描述”,它是一个String参数,是加油站的名称。有问题的方法findStation()采用一个设置为加油站名称的显式参数。然后,使用这个我搜索我的数组列表,寻找与我的toMatch显式参数匹配的加油站描述(使用我知道正确运行的先前声明的getDescription()方法)。如果找到匹配项,则返回找到它的整数位置。
好吧,我觉得我已经正确编写了代码,但当我尝试对其进行Junit测试时,我收到错误“Expected< 6>,但返回< -1>”。有没有人看到我的方法语法或我测试方法的方式有任何问题?提前感谢您精彩的人们提供的所有帮助!
顺便说一句,我试图将所有相关内容都包括在内,以找出有问题的具体方法。如果需要其他东西,请告诉我!
有问题的方法:我创建一个临时的Station对象来保存在列表中“i”位置找到的信息。然后,我创建一个临时String来保存我刚刚检索到的对象的描述。如果描述与输入的显式参数匹配,那么我希望它返回找到它的索引号。我的常数变量NO_MATCH设置为“-1”,所以我的测试告诉我加油站描述显然不存在。
public int findStation(String toMatch)
{
//returns the index where a match is found
for (int i = 0; i < stations.size(); i++)
{
Station tmpStation = stations.get(i);
String tmpDescription = tmpStation.getDescription();
if (tmpDescription.equals(toMatch))
{
return i;
}
}
return NO_MATCH;
}
此外,还有用于添加电台的addStation()方法。
public boolean addStation(double inLatitude, double inLongitude,
String inDescription, double inPrice, String inFuelType)
{
// Be sure inDescription is not a description in the collection
if (this.findStation(inDescription) == NO_MATCH)
{
Station tmpStation = new Station();
stations.add(tmpStation);
return true;
}
else return false;
}
Junit测试,包括setup(),让您了解我正在使用的内容。
protected void setUp()
{
// collection for testing
collection2 = new StationCollection();
// add stations to the collection
this.collection2.addStation(39.933611, -82.4725,
"Snake on the Lake", 2.99, "B80");
this.collection2.addStation(39.9621, -83.0005,
"Snake Central", 2.25, "E45");
this.collection2.addStation(39.94, -82.48,
"Snake Brothers", 2.27, "E45");
this.collection2.addStation(39.8614, -82.8916,
"Anna Conda Oil", 2.71, "PROPANE");
this.collection2.addStation(39.8614, -82.8916,
"Anna Conda Oil - II", 2.27, "E45");
this.collection2.addStation(39.9060, -82.7562,
"Tiger Snake", 2.31, "E40");
this.collection2.addStation(39.9611, -82.9988,
"Rattler Ray's", 2.15, "E84");
this.collection2.addStation(40.011792, -82.973196,
"Water Adder Oil", 3.20, "B80");
this.collection2.addStation(40.011792, -82.974,
"Water Adder Oil - II", 2.31, "E40");
}
public void testFindStation()
{
// Create an empty collection
StationCollection collection1 = new StationCollection();
// Attempt to find a station in the empty collection
assertEquals(StationCollection.NO_MATCH, collection1.findStation("Rattler Ray's"));
// Use non-empty collection2
// Look for position of matching station
assertEquals(6, collection2.findStation("Rattler Ray's"));
// Check that it detects a non-matching station
assertEquals(StationCollection.NO_MATCH, collection2.findStation("Sam Snake's"));
}