我在下面包含了一段代码,我似乎无法弄清楚我做错了什么。该代码是我正在编写的程序的一部分,该程序使用包含几个显式参数的虚拟加油站对象填充数组列表;其中之一是“描述”,它是一个字符串参数,是加油站的名称。有问题的方法 findStation() 采用一个显式参数,该参数设置为加油站的名称。然后,使用它,我在我的数组列表中搜索寻找与我的 toMatch 显式参数匹配的加油站描述(使用先前声明的 getDescription() 方法,我知道函数正确)。如果找到匹配项,则返回找到匹配项的整数位置。
好吧,我觉得好像我已经正确编写了代码,但是当我尝试对其进行 Junit 测试时,我收到错误“预期 <6>,但返回 <-1>”。有没有人看到我的方法语法或测试方法的方式有什么问题?提前感谢你们这些好人的所有帮助!
顺便说一句,我试图包括与找出所讨论的具体方法有关的所有内容。让我知道是否需要其他东西!
有问题的方法:我创建了一个临时 Station 对象来保存在列表中“i”位置找到的信息。然后,我创建一个临时字符串来保存我刚刚检索到的对象的描述。如果描述与输入的显式参数匹配,那么我希望它返回找到它的索引号。我的常量变量 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"));
}