我開始學習有關的Mockito。我不知道如何嘲笑我的解析器,並使用現有文件,例如帶有雙數字的「data.txt」,但保存爲字符串(21.144 -12.98等)。更多我想檢查這些數字是不是字母或別的東西。我的解析器:嘲諷簡單解析與現有的文件,並檢查它
package model.utils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.LinkedList;
import java.util.Scanner;
import model.data.HullPoint;
import model.data.HullPointContainer;
public class Parser {
public static HullPointContainer parseFile(File file) throws FileNotFoundException
{
double a, b;
String da, db;
double minx = 0, miny = 0, maxx = 0, maxy = 0;
int k = 0;
LinkedList<HullPoint> list = new LinkedList<HullPoint>();
try{
Scanner scanner = new Scanner(file);
try {
while (scanner.hasNextLine()){
String line = scanner.nextLine();
Scanner lineScanner = new Scanner(line);
while (lineScanner.hasNext()){
da = (lineScanner.next());
db = (lineScanner.next());
a = Double.parseDouble(da);
b = Double.parseDouble(db);
HullPoint point = new HullPoint(a,b);
list.add(point);
if(k == 0){
minx = maxx = a;
miny = maxy = b;
} else {
if(a < minx)
minx = a;
if(a > maxx)
maxx = a;
if(b < miny)
miny = b;
if(b > maxy)
maxy = b;
}
k++;
}
lineScanner.close();
}
int i = list.size();
System.out.println(i);
System.out.println("minX = " + minx +" and minY= " + miny);
System.out.println("maxX = " + maxx +" and maxY= " + maxy);
return new HullPointContainer(list, minx, miny, maxx, maxy);
} catch (Exception e) {
throw e;
} finally {
scanner.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
throw(e);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
}
你正在測試解析器,所以它是CUT。你不應該嘲笑CUT,這會打敗測試它的目的。我會將'URI'作爲輸入而不是'File',並將測試用例存儲在測試類路徑中。然後你可以使用'ClassLoader'來找到它並傳入URI。 –