Покрытие кода на IDE отличается от покрытия кода на веб-сайте. - PullRequest
0 голосов
/ 23 апреля 2020

Когда я запускаю свои тесты junit на Eclipse, я получаю довольно высокий процент. Однако, когда я просматриваю онлайн-страницу с заданиями в моей школе, она получает крайне низкий охват кода. Я считаю, что это как-то связано со следующим кодом:

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();

Сайт сообщает мне, что он получает java .lang. NullPointerException из этой строки, несмотря на то, что я не получаю никаких ошибок или предупреждений в IDE. Я подозреваю, что это может быть связано с выполнением try-catch внутри конструктора, но я не могу быть уверен.

Что-то не так с кодом? Я хотел бы быть уверен, прежде чем задавать вопросы профессорам.

Спасибо.

...