当我在Eclipse上运行junit测试时,我得到的百分比很高。但是,当我浏览学校的在线作业上交页面时,它得到的代码覆盖率非常低。我相信这与以下代码有关:
CompetitionDijkstra (String filename, int sA, int sB, int sC){
Scanner x;
this.sA = sA;
this.sB = sB;
this.sC = sC;
try {
x = new Scanner(new File(filename));
}
catch(Exception e) {
x = null;
System.out.println("could not find file");
}
String v_str = x.next();
String e_str = x.next();
this.v = Integer.parseInt(v_str);
this.e = Integer.parseInt(e_str);
this.graph = new EdgeWeightedGraph(v);
Edge buff = new Edge(0, 0, 0);
String bv_str;
String bw_str;
String bweight_str;
int bv, bw;
double bweight;
while(x.hasNext()) {
bv_str = x.next();
bw_str = x.next();
bweight_str = x.next();
bv = Integer.parseInt(bv_str);
bw = Integer.parseInt(bw_str);
bweight = Double.parseDouble(bweight_str);
buff = new Edge(bv, bw, bweight);
this.graph.addEdge(buff);
}
x.close();
}
特别是String v_str = x.next();
行
该网站告诉我,尽管我没有在IDE上收到任何错误或警告,但仍从此行获取到java.lang.NullPointerException。我怀疑这可能与在构造函数中使用try-catch有关,但我不确定。
代码有什么问题吗?在问我的教授任何问题之前,我想确定一下。
谢谢。